/// /// import { URL } from 'url'; import FormData from 'form-data'; export interface GotenbergClient { post: (url: string, data: FormData, headers?: { [header: string]: number | string | string[] | undefined; }) => Promise; get?: (url: string) => Promise; } export interface GotenbergClientFunction { (config?: object): GotenbergClient; } export interface GotenbergClientClass { new (config?: object): GotenbergClient; } export declare type CommonRequestFields = { waitTimeout?: number; webhookURL?: string; webhookURLTimeout?: number; resultFilename?: string; }; export declare type ChromeRequestFields = { waitDelay?: number; googleChromeRpccBufferSize?: number; }; export declare type HtmlRequestFields = { paperWidth?: number; paperHeight?: number; marginTop?: number; marginBottom?: number; marginLeft?: number; marginRight?: number; landscape?: boolean; pageRanges?: string; scale?: number; }; export declare type MarkdownRequestFields = HtmlRequestFields; export declare type OfficeRequestFields = { landscape?: boolean; pageRanges?: string; }; export declare type UrlRequestFields = HtmlRequestFields & { remoteURL?: string; }; export declare type MergeRequestFields = {}; export declare type RequestFields = CommonRequestFields & UrlRequestFields & HtmlRequestFields & MergeRequestFields & OfficeRequestFields & ChromeRequestFields & MarkdownRequestFields; export declare type FieldsModifier = (fields: RequestFields) => void; export declare type PaperOptions = [number, number] | { width?: number; height?: number; }; export declare type MarginOptions = [number, number, number, number] | { top?: number; right?: number; bottom?: number; left?: number; }; export declare type ConversionOptions = PaperOptions | MarginOptions | FieldsModifier | (HtmlRequestFields & OfficeRequestFields & MarkdownRequestFields & { paper?: PaperOptions; } & { margins?: MarginOptions; }); export declare type FileURI = string; export declare type PlainSource = string | Buffer | FileURI | NodeJS.ReadableStream; export declare type TupleSource = [string, PlainSource]; export declare type ObjectSource = { [name: string]: PlainSource; }; export declare type Source = URL | PlainSource | TupleSource | ObjectSource | Array | Iterable; export declare type TupleStreamsSource = [string, NodeJS.ReadableStream]; export declare type HeadersModifier = (headers: HttpHeaders) => void; export declare type HttpHeaders = { [header: string]: number | string; }; export declare enum RequestType { Url = 0, Ping = 1, Html = 2, Merge = 3, Office = 4, Markdown = 5, Undefined = 6 } export declare type Request = { type: RequestType; url: string; client: GotenbergClient; source?: Source; fields: RequestFields; headers?: HttpHeaders; }; export declare type UrlRequest = Request & { type: RequestType.Url; }; export declare type PingRequest = Request & { type: RequestType.Ping; }; export declare type HtmlRequest = Request & { type: RequestType.Html; }; export declare type MergeRequest = Request & { type: RequestType.Merge; }; export declare type OfficeRequest = Request & { type: RequestType.Office; }; export declare type MarkdownRequest = Request & { type: RequestType.Markdown; }; export declare type TypedRequest = UrlRequest | PingRequest | HtmlRequest | MergeRequest | OfficeRequest | MarkdownRequest;