| // Type definitions for xmlbuilder | |
| // Project: https://github.com/oozcitak/xmlbuilder-js | |
| // Definitions by: Wallymathieu <https://github.com/wallymathieu> | |
| //               : GaikwadPratik <https://github.com/GaikwadPratik> | |
| // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped | |
|  | |
| export = xmlbuilder; | |
| 
 | |
| declare namespace xmlbuilder { | |
| 
 | |
|     class XMLDocType { | |
|         clone(): XMLDocType; | |
|         element(name: string, value?: Object): XMLDocType; | |
|         attList(elementName: string, attributeName: string, attributeType: string, defaultValueType?: string, defaultValue?: any): XMLDocType; | |
|         entity(name: string, value: any): XMLDocType; | |
|         pEntity(name: string, value: any): XMLDocType; | |
|         notation(name: string, value: any): XMLDocType; | |
|         cdata(value: string): XMLDocType; | |
|         comment(value: string): XMLDocType; | |
|         instruction(target: string, value: any): XMLDocType; | |
|         root(): XMLDocType; | |
|         document(): any; | |
|         toString(options?: XMLToStringOptions, level?: Number): string; | |
| 
 | |
|         ele(name: string, value?: Object): XMLDocType; | |
|         att(elementName: string, attributeName: string, attributeType: string, defaultValueType?: string, defaultValue?: any): XMLDocType; | |
|         ent(name: string, value: any): XMLDocType; | |
|         pent(name: string, value: any): XMLDocType; | |
|         not(name: string, value: any): XMLDocType; | |
|         dat(value: string): XMLDocType; | |
|         com(value: string): XMLDocType; | |
|         ins(target: string, value: any): XMLDocType; | |
|         up(): XMLDocType; | |
|         doc(): any; | |
|     } | |
| 
 | |
|     class XMLElementOrXMLNode { | |
|         // XMLElement: | |
|         clone(): XMLElementOrXMLNode; | |
|         attribute(name: any, value?: any): XMLElementOrXMLNode; | |
|         att(name: any, value?: any): XMLElementOrXMLNode; | |
|         removeAttribute(name: string): XMLElementOrXMLNode; | |
|         instruction(target: string, value: any): XMLElementOrXMLNode; | |
|         instruction(array: Array<any>): XMLElementOrXMLNode; | |
|         instruction(obj: Object): XMLElementOrXMLNode; | |
|         ins(target: string, value: any): XMLElementOrXMLNode; | |
|         ins(array: Array<any>): XMLElementOrXMLNode; | |
|         ins(obj: Object): XMLElementOrXMLNode; | |
|         a(name: any, value?: any): XMLElementOrXMLNode; | |
|         i(target: string, value: any): XMLElementOrXMLNode; | |
|         i(array: Array<any>): XMLElementOrXMLNode; | |
|         i(obj: Object): XMLElementOrXMLNode; | |
|         toString(options?: XMLToStringOptions, level?: Number): string; | |
|         // XMLNode: | |
|         element(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; | |
|         ele(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; | |
|         insertBefore(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; | |
|         insertAfter(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; | |
|         remove(): XMLElementOrXMLNode; | |
|         node(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; | |
|         text(value: string): XMLElementOrXMLNode; | |
|         cdata(value: string): XMLElementOrXMLNode; | |
|         comment(value: string): XMLElementOrXMLNode; | |
|         raw(value: string): XMLElementOrXMLNode; | |
|         declaration(version: string, encoding: string, standalone: boolean): XMLElementOrXMLNode; | |
|         doctype(pubID: string, sysID: string): XMLDocType; | |
|         up(): XMLElementOrXMLNode; | |
|         importDocument(input: XMLElementOrXMLNode): XMLElementOrXMLNode; | |
|         root(): XMLElementOrXMLNode; | |
|         document(): any; | |
|         end(options?: XMLEndOptions): string; | |
|         prev(): XMLElementOrXMLNode; | |
|         next(): XMLElementOrXMLNode; | |
|         nod(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; | |
|         txt(value: string): XMLElementOrXMLNode; | |
|         dat(value: string): XMLElementOrXMLNode; | |
|         com(value: string): XMLElementOrXMLNode; | |
|         doc(): XMLElementOrXMLNode; | |
|         dec(version: string, encoding: string, standalone: boolean): XMLElementOrXMLNode; | |
|         dtd(pubID: string, sysID: string): XMLDocType; | |
|         e(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; | |
|         n(name: any, attributes?: Object, text?: any): XMLElementOrXMLNode; | |
|         t(value: string): XMLElementOrXMLNode; | |
|         d(value: string): XMLElementOrXMLNode; | |
|         c(value: string): XMLElementOrXMLNode; | |
|         r(value: string): XMLElementOrXMLNode; | |
|         u(): XMLElementOrXMLNode; | |
|     } | |
| 
 | |
|     interface XMLDec { | |
|         version?: string; | |
|         encoding?: string; | |
|         standalone?: boolean; | |
|     } | |
| 
 | |
|     interface XMLDtd { | |
|         pubID?: string; | |
|         sysID?: string; | |
|     } | |
| 
 | |
|     interface XMLStringifier { | |
|         [x: string]: ((v: any) => string) | string; | |
|     } | |
| 
 | |
|     interface XMLWriter { | |
|         [x: string]: ((e: XMLElementOrXMLNode, options: WriterOptions, level?: number) => void); | |
|     } | |
| 
 | |
|     interface XMLCreateOptions { | |
|         headless?: boolean; | |
|         keepNullNodes?: boolean; | |
|         keepNullAttributes?: boolean; | |
|         ignoreDecorators?: boolean; | |
|         separateArrayItems?: boolean; | |
|         noDoubleEncoding?: boolean; | |
|         stringify?: XMLStringifier; | |
|     } | |
| 
 | |
|     interface XMLToStringOptions { | |
|         pretty?: boolean; | |
|         indent?: string; | |
|         offset?: number; | |
|         newline?: string; | |
|         allowEmpty?: boolean; | |
|         spacebeforeslash?: string; | |
|     } | |
| 
 | |
|     interface XMLEndOptions extends XMLToStringOptions { | |
|         writer?: XMLWriter; | |
|     } | |
| 
 | |
|     interface WriterOptions { | |
|         pretty?: boolean; | |
|         indent?: string; | |
|         newline?: string; | |
|         offset?: number; | |
|         allowEmpty?: boolean; | |
|         dontPrettyTextNodes?: boolean; | |
|         spaceBeforeSlash?: string | boolean; | |
|         user? :any; | |
|         state?: WriterState; | |
|     } | |
| 
 | |
|     enum WriterState { | |
|         None = 0, | |
|         OpenTag = 1, | |
|         InsideTag = 2, | |
|         CloseTag = 3 | |
|     } | |
| 
 | |
|     function create(nameOrObjSpec: string | { [name: string]: Object }, xmldecOrOptions?: XMLDec | XMLCreateOptions, doctypeOrOptions?: XMLDtd | XMLCreateOptions, options?: XMLCreateOptions): XMLElementOrXMLNode; | |
|     function begin(): XMLElementOrXMLNode; | |
| }
 |