sig
  type conf = {
    stdin : bool;
    bottom : bool;
    focus_foreground : string;
    focus_background : string;
    normal_foreground : string;
    normal_background : string;
    match_foreground : string;
    lines : int;
    window_background : string;
  }
  val default_conf : Dmlenu.conf
  type app_state = { compl : Completion.state; prompt : string; }
  val run :
    ?source_transition_hook:(Completion.state -> Dmlenu.conf -> Dmlenu.conf) ->
    Dmlenu.app_state -> Dmlenu.conf -> string option
  val run_list :
    ?source_transition_hook:(Completion.state -> Dmlenu.conf -> Dmlenu.conf) ->
    Dmlenu.app_state -> Dmlenu.conf -> string list
end