sig
  external create : unit -> TDOMImplementation.t = "ml_gdome_di_create"
  external hasFeature :
    this:TDOMImplementation.t ->
    feature:TDOMString.t -> version:TDOMString.t -> bool
    = "ml_gdome_di_hasFeature"
  external createDocumentType :
    this:TDOMImplementation.t ->
    qualifiedName:TDOMString.t ->
    publicId:TDOMString.t -> systemId:TDOMString.t -> TDocumentType.t
    = "ml_gdome_di_createDocumentType"
  external createDocument :
    this:TDOMImplementation.t ->
    namespaceURI:TDOMString.t option ->
    qualifiedName:TDOMString.t ->
    doctype:[> `DocumentType ] GdomeT.t option -> TDocument.t
    = "ml_gdome_di_createDocument"
  type validatingMode = Parsing | Validating | Recovering
  val createDocumentFromURI :
    ?validatingMode:IDOMImplementation.validatingMode ->
    ?keepEntities:bool ->
    unit -> this:TDOMImplementation.t -> uri:string -> TDocument.t
  val createDocumentFromMemory :
    ?validatingMode:IDOMImplementation.validatingMode ->
    ?keepEntities:bool ->
    unit -> this:TDOMImplementation.t -> doc:TDOMString.t -> TDocument.t
  val saveDocumentToFile :
    this:TDOMImplementation.t ->
    doc:[> `Document ] GdomeT.t ->
    name:string -> ?indent:bool -> unit -> bool
  val saveDocumentToFileEnc :
    this:TDOMImplementation.t ->
    doc:[> `Document ] GdomeT.t ->
    name:string -> encoding:string -> ?indent:bool -> unit -> bool
  val saveDocumentToMemory :
    this:TDOMImplementation.t ->
    doc:[> `Document ] GdomeT.t -> ?indent:bool -> unit -> string
  val saveDocumentToMemoryEnc :
    this:TDOMImplementation.t ->
    doc:[> `Document ] GdomeT.t ->
    encoding:string -> ?indent:bool -> unit -> string
  val enableEvent :
    this:TDOMImplementation.t ->
    doc:[> `Document ] GdomeT.t -> name:string -> unit
  val disableEvent :
    this:TDOMImplementation.t ->
    doc:[> `Document ] GdomeT.t -> name:string -> unit
  val eventIsEnabled :
    this:TDOMImplementation.t ->
    doc:[> `Document ] GdomeT.t -> name:string -> bool
end