interface Mammoth { convertToHtml: (input: Input, options?: Options) => Promise; extractRawText: (input: Input) => Promise; embedStyleMap: (input: Input, styleMap: string) => Promise<{toBuffer: () => Buffer}>; images: Images; } type Input = NodeJsInput | BrowserInput; type NodeJsInput = PathInput | BufferInput; interface PathInput { path: string; } interface BufferInput { buffer: Buffer; } type BrowserInput = ArrayBufferInput; interface ArrayBufferInput { arrayBuffer: ArrayBuffer; } interface Options { styleMap?: string | Array; includeEmbeddedStyleMap?: boolean; includeDefaultStyleMap?: boolean; convertImage?: ImageConverter; ignoreEmptyParagraphs?: boolean; idPrefix?: string; } interface ImageConverter { __mammothBrand: "ImageConverter"; } interface Image { contentType: string; read: ImageRead; } interface ImageRead { (): Promise; (encoding: string): Promise; } interface ImageAttributes { src: string; } interface Images { dataUri: ImageConverter; imgElement: (f: (image: Image) => Promise) => ImageConverter; } interface Result { value: string; messages: Array; } type Message = Warning | Error; interface Warning { type: "warning"; message: string; } interface Error { type: "error"; message: string; error: unknown; } declare const mammoth: Mammoth; export = mammoth;