sig
  type op = string * string list
  type op_lst = Ldap_ooclient.op list
  type referral_policy = [ `FOLLOW | `RETURN ]
  type changetype = [ `ADD | `DELETE | `MODDN | `MODIFY | `MODRDN ]
  class type ldapentry_t =
    object
      method add : Ldap_ooclient.op_lst -> unit
      method attributes : string list
      method changes : (Ldap_types.modify_optype * string * string list) list
      method changetype : Ldap_ooclient.changetype
      method delete : Ldap_ooclient.op_lst -> unit
      method diff :
        Ldap_ooclient.ldapentry_t ->
        (Ldap_types.modify_optype * string * string list) list
      method dn : string
      method exists : string -> bool
      method flush_changes : unit
      method get_value : string -> string list
      method modify :
        (Ldap_types.modify_optype * string * string list) list -> unit
      method print : unit
      method replace : Ldap_ooclient.op_lst -> unit
      method set_changetype : Ldap_ooclient.changetype -> unit
      method set_dn : string -> unit
    end
  class ldapentry :
    object
      method add : Ldap_ooclient.op_lst -> unit
      method attributes : string list
      method changes : (Ldap_types.modify_optype * string * string list) list
      method changetype : Ldap_ooclient.changetype
      method delete : Ldap_ooclient.op_lst -> unit
      method diff :
        Ldap_ooclient.ldapentry_t ->
        (Ldap_types.modify_optype * string * string list) list
      method dn : string
      method exists : string -> bool
      method flush_changes : unit
      method get_value : string -> string list
      method modify :
        (Ldap_types.modify_optype * string * string list) list -> unit
      method print : unit
      method replace : Ldap_ooclient.op_lst -> unit
      method set_changetype : Ldap_ooclient.changetype -> unit
      method set_dn : string -> unit
    end
  val format_entry :
    < attributes : string list; dn : string;
      get_value : string -> string list; .. > ->
    unit
  val format_entries :
    < attributes : string list; dn : string;
      get_value : string -> string list; .. >
    list -> unit
  type changerec =
    [ `Addition of Ldap_ooclient.ldapentry
    | `Delete of string
    | `Modification of
        string * (Ldap_types.modify_optype * string * string list) list
    | `Modrdn of string * int * string ]
  val to_entry :
    [< `Entry of Ldap_types.search_result_entry | `Referral of string list ] ->
    Ldap_ooclient.ldapentry
  val of_entry : Ldap_ooclient.ldapentry -> Ldap_types.search_result_entry
  class ldapcon :
    ?connect_timeout:int ->
    ?referral_policy:[> `RETURN ] ->
    ?version:int ->
    string list ->
    object
      method add : Ldap_ooclient.ldapentry -> unit
      method bind :
        ?cred:string -> ?meth:Ldap_funclient.authmethod -> string -> unit
      method delete : string -> unit
      method modify :
        string ->
        (Ldap_types.modify_optype * string * string list) list -> unit
      method modrdn :
        string ->
        ?deleteoldrdn:bool -> ?newsup:string option -> string -> unit
      method rawschema : Ldap_ooclient.ldapentry
      method schema : Ldap_schema.schema
      method search :
        ?scope:Ldap_types.search_scope ->
        ?attrs:string list ->
        ?attrsonly:bool ->
        ?base:string ->
        ?sizelimit:Int32.t ->
        ?timelimit:Int32.t -> string -> Ldap_ooclient.ldapentry list
      method search_a :
        ?scope:Ldap_types.search_scope ->
        ?attrs:string list ->
        ?attrsonly:bool ->
        ?base:string ->
        ?sizelimit:Int32.t ->
        ?timelimit:Int32.t ->
        string -> ?abandon:bool -> unit -> Ldap_ooclient.ldapentry
      method unbind : unit
      method update_entry : Ldap_ooclient.ldapentry -> unit
    end
  val iter :
    (Ldap_ooclient.ldapentry -> unit) ->
    (?abandon:bool -> unit -> Ldap_ooclient.ldapentry) -> unit
  val rev_map :
    (Ldap_ooclient.ldapentry -> 'a) ->
    (?abandon:bool -> unit -> Ldap_ooclient.ldapentry) -> 'a list
  val map :
    (Ldap_ooclient.ldapentry -> 'a) ->
    (?abandon:bool -> unit -> Ldap_ooclient.ldapentry) -> 'a list
  val fold :
    (Ldap_ooclient.ldapentry -> '-> 'a) ->
    '-> (?abandon:bool -> unit -> Ldap_ooclient.ldapentry) -> 'a
end