sig
type t = Elm.theme
val _new : unit -> Elm_theme.t
val free : Elm_theme.t -> unit
val copy : Elm_theme.t -> Elm_theme.t -> unit
val ref_set : Elm_theme.t -> Elm_theme.t option -> unit
val ref_get : Elm_theme.t -> Elm_theme.t option
val default_get : unit -> Elm_theme.t
val overlay_add : ?th:Elm_theme.t -> string -> unit
val overlay_del : ?th:Elm_theme.t -> string -> unit
val overlay_list_get : Elm_theme.t -> string list
val extension_add : ?th:Elm_theme.t -> string -> unit
val extension_del : ?th:Elm_theme.t -> string -> unit
val extension_list_get : Elm_theme.t -> string list
val set : ?th:Elm_theme.t -> string -> unit
val get : ?th:Elm_theme.t -> unit -> string
val list_get : ?th:Elm_theme.t -> unit -> string list
val list_item_path_get : string -> (string * bool) option
val flush : ?th:Elm_theme.t -> unit -> unit
val full_flush : unit -> unit
val name_available_list_get : unit -> string list
val data_get : ?th:Elm_theme.t -> string -> string option
val group_path_find : ?th:Elm_theme.t -> string -> string option
val group_base_list : ?th:Elm_theme.t -> string -> string list
val system_dir_get : unit -> string
val user_dir_get : unit -> string
end