// Type definitions for node-xml2js // Project: https://github.com/Leonidas-from-XIV/node-xml2js // Definitions by: Michel Salib , Jason McNeil // Definitions: https://github.com/borisyankov/DefinitelyTyped declare module 'xml2js' { export = xml2js; module xml2js { function parseString(xml: string, callback: (err: any, result: any) => void): void; function parseString(xml: string, options: Options, callback: (err: any, result: any) => void): void; class Builder { constructor(options?: BuilderOptions); buildObject(rootObj: any): string; } class Parser { constructor(options?: Options); processAsync(): any; assignOrPush(obj: any, key: string, newValue: any): any; reset(): any; parseString(str: string , cb?: Function): void; } interface RenderOptions { indent?: string; newline?: string; pretty?: boolean; } interface XMLDeclarationOptions { encoding?: string; standalone?: boolean; version?: string; } interface BuilderOptions { doctype?: any; headless?: boolean; indent?: string; newline?: string; pretty?: boolean; renderOpts?: RenderOptions; rootName?: string; xmldec?: XMLDeclarationOptions; } interface Options { async?: boolean; attrkey?: string; attrNameProcessors?: (name: string) => string; charkey?: string; charsAsChildren?: boolean; childkey?: string; emptyTag?: any; explicitArray?: boolean; explicitCharkey?: boolean; explicitChildren?: boolean; explicitRoot?: boolean; ignoreAttrs?: boolean; mergeAttrs?: boolean; normalize?: boolean; normalizeTags?: boolean; strict?: boolean; tagNameProcessors?: [(name: string) => string]; trim?: boolean; validator?: Function; xmlns?: boolean; } } }