/// <reference types="node" />
/// <reference types="node" />
import { Readable } from 'stream';
import { Pool, Options as PoolOptions } from 'generic-pool';
import { Browser, Page, PDFOptions } from 'puppeteer';
interface PageInstance {
    browser: Browser;
    page: Page;
}
export declare class PdfGenerator {
    protected pagesPool: Pool<PageInstance>;
    /**
     * @param poolConfig https://github.com/coopernurse/node-pool/blob/1c5cb79dcbea27c4b1839bd75bfc41274adb8b94/lib/PoolOptions.js#L5
     * @param puppeteerArgs https://peter.sh/experiments/chromium-command-line-switches/
     */
    constructor(poolConfig?: PoolOptions, puppeteerArgs?: string[]);
    stop(): Promise<void>;
    awaitPool(): Promise<void>;
    generatePDF(htmlOrUrl: string | URL): Promise<Buffer>;
    generatePDF(htmlOrUrl: string | URL, stream: undefined, pdfOptions?: PDFOptions): Promise<Buffer>;
    generatePDF(htmlOrUrl: string | URL, stream: false, pdfOptions?: PDFOptions): Promise<Buffer>;
    generatePDF(htmlOrUrl: string | URL, stream: true, pdfOptions?: PDFOptions): Promise<Readable>;
}
export {};
//# sourceMappingURL=index.d.ts.map