sig
  module Helpers = V1.Helpers
  module T = V1.T
  val float_of_hh_mm_ss : int -> int -> float -> float
  val to_tm : T.t -> Unix.tm
  val to_tm_utc : T.t -> Unix.tm
  val utc_mktime :
    year:int -> month:int -> day:int -> ofday_sec:float -> float
  val to_epoch : T.t -> float
  module Epoch_cache = V1.Epoch_cache
  val of_epoch_internal :
    Zone.t -> Core_kernel.Std.Float.t -> Epoch_cache.t * (Date.t * Ofday.t)
  val of_epoch : Zone.t -> float -> Date.t * Ofday.t
  val to_date_ofday : T.t -> zone:Zone.t -> Date.t * Ofday.t
  val of_date_ofday : Date.t -> Ofday.t -> zone:Zone.t -> T.t
  val of_date_ofday_precise :
    Date.t ->
    Ofday.t ->
    zone:Zone.t ->
    [> `Never of Time_internal.T.t | `Once of T.t | `Twice of T.t * T.t ]
  val to_date : T.t -> zone:Zone.t -> Date.t
  val to_ofday : T.t -> zone:Zone.t -> Ofday.t
  val convert :
    from_tz:Zone.t -> to_tz:Zone.t -> Date.t -> Ofday.t -> Date.t * Ofday.t
  val utc_offset : T.t -> zone:Zone.t -> Span.t
  val offset_string : T.t -> zone:Zone.t -> Core_kernel.Std.String.t
  val to_string_abs_parts :
    T.t -> zone:Zone.t -> Core_kernel.Std.String.t list
  val to_string_abs_trimmed : T.t -> zone:Zone.t -> Core_kernel.Std.String.t
  val to_string_abs : T.t -> zone:Zone.t -> Core_kernel.Std.String.t
  val to_string_trimmed : T.t -> zone:Zone.t -> string
  val to_sec_string : T.t -> zone:Zone.t -> string
  val to_filename_string : T.t -> zone:Zone.t -> string
  val to_string_fix_proto : [< `Local | `Utc ] -> T.t -> string
  val of_string_fix_proto :
    [< `Local | `Utc ] -> Core_kernel.Std.String.t -> T.t
  val of_filename_string : Core_kernel.Std.String.t -> zone:Zone.t -> T.t
  val format : T.t -> string -> string
  val pause_for : Span.t -> [> `Ok | `Remaining of Span.t ]
  val pause : Span.t -> unit
  val interruptible_pause : Span.t -> [> `Ok | `Remaining of Span.t ]
  val pause_forever : unit -> 'a
  val occurrence :
    [< `First_after_or_at | `Last_before_or_at ] ->
    T.t -> ofday:Ofday.t -> zone:Zone.t -> T.t
  val epoch : T.t
  type t = Time_internal.T.t
  val ( >= ) : t -> t -> bool
  val ( <= ) : t -> t -> bool
  val ( = ) : t -> t -> bool
  val ( > ) : t -> t -> bool
  val ( < ) : t -> t -> bool
  val ( <> ) : t -> t -> bool
  val equal : t -> t -> bool
  val compare : t -> t -> int
  val min : t -> t -> t
  val max : t -> t -> t
  val ascending : t -> t -> int
  val descending : t -> t -> int
  val between : t -> low:t -> high:t -> bool
  module Replace_polymorphic_compare = V1.Replace_polymorphic_compare
  type comparator_witness = Time_internal.T.comparator_witness
  val comparator : (t, comparator_witness) Core_kernel.Comparator.comparator
  val validate_lbound :
    min:t Core_kernel.Comparable_intf.bound -> t Core_kernel.Validate.check
  val validate_ubound :
    max:t Core_kernel.Comparable_intf.bound -> t Core_kernel.Validate.check
  val validate_bound :
    min:t Core_kernel.Comparable_intf.bound ->
    max:t Core_kernel.Comparable_intf.bound -> t Core_kernel.Validate.check
  val hash : t -> int
  val hashable : t Core_kernel.Hashable.Hashtbl.Hashable.t
  module Table = V1.Table
  module Hash_set = V1.Hash_set
  module Hash_queue = V1.Hash_queue
  val ( >=. ) : t -> t -> bool
  val ( <=. ) : t -> t -> bool
  val ( =. ) : t -> t -> bool
  val ( >. ) : t -> t -> bool
  val ( <. ) : t -> t -> bool
  val ( <>. ) : t -> t -> bool
  val robustly_compare : t -> t -> int
  val of_float : float -> t
  val to_float : t -> float
  val add : t -> Span.t -> t
  val sub : t -> Span.t -> t
  val diff : t -> t -> Span.t
  val abs_diff : t -> t -> Span.t
  val now : unit -> t
  val bin_t : t Core_kernel.Std.Bin_prot.Type_class.t
  val bin_read_t : t Core_kernel.Std.Bin_prot.Read.reader
  val __bin_read_t__ : (int -> t) Core_kernel.Std.Bin_prot.Read.reader
  val bin_reader_t : t Core_kernel.Std.Bin_prot.Type_class.reader
  val bin_size_t : t Core_kernel.Std.Bin_prot.Size.sizer
  val bin_write_t : t Core_kernel.Std.Bin_prot.Write.writer
  val bin_writer_t : t Core_kernel.Std.Bin_prot.Type_class.writer
  val to_string : T.t -> Core_kernel.Std.String.t
  exception Time_of_string of string * Core_kernel.Std.Exn.t
  exception Time_string_not_absolute of string
  val of_string_gen :
    require_absolute:bool -> Core_kernel.Std.String.t -> T.t
  val of_string_abs : Core_kernel.Std.String.t -> T.t
  val of_string : Core_kernel.Std.String.t -> T.t
  val t_of_sexp_gen : Core_kernel.Std.Sexp.t -> (string -> T.t) -> T.t
  val t_of_sexp : Core_kernel.Std.Sexp.t -> T.t
  val t_of_sexp_abs : Core_kernel.Std.Sexp.t -> T.t
  val sexp_of_t_abs : zone:Zone.t -> T.t -> Core_kernel.Std.Sexp.t
  val sexp_zone : Zone.t ref
  val get_sexp_zone : unit -> Zone.t
  val set_sexp_zone : Zone.t -> unit
  module C = V1.C
  val is_earlier : t -> than:t -> bool
  val is_later : t -> than:t -> bool
  module Map = V1.Map
  module Set = V1.Set
  val pp : Format.formatter -> t -> unit
  val of_localized_string : zone:Zone.t -> Core_kernel.Std.String.t -> T.t
  val next_multiple :
    ?can_equal_after:bool ->
    base:t -> after:t -> interval:Span.t -> unit -> t
  val sexp_of_t : T.t -> Core_kernel.Std.Sexp.t
end