import * as plugins from './smartpdf.plugins.js'; export interface ISmartPdfOptions { port?: number; portRangeStart?: number; portRangeEnd?: number; } export declare class SmartPdf { static readonly SCALE_SCREEN = 2; static readonly SCALE_HIGH = 3; static readonly SCALE_PRINT = 6; /** * Calculate scale factor for desired DPI * PDF.js default is 72 DPI, so scale = desiredDPI / 72 */ static getScaleForDPI(dpi: number): number; static create(optionsArg?: ISmartPdfOptions): Promise; private smartserveInstance; private smartnetworkInstance; serverPort: number; headlessBrowser: plugins.smartpuppeteer.puppeteer.Browser | null; externalBrowserBool: boolean; private _readyDeferred; private _candidates; private _options; private _isRunning; constructor(optionsArg?: ISmartPdfOptions); start(headlessBrowserArg?: plugins.smartpuppeteer.puppeteer.Browser): Promise; stop(): Promise; private getBrowser; /** * Returns a PDF for a given HTML string. */ getA4PdfResultForHtmlString(htmlStringArg: string): Promise; getPdfResultForWebsite(websiteUrl: string): Promise; getFullWebsiteAsSinglePdf(websiteUrl: string): Promise; mergePdfs(inputPdfBuffers: Uint8Array[]): Promise; readFileToPdfObject(pathArg: string): Promise; extractTextFromPdfBuffer(pdfBufferArg: Buffer): Promise; /** * Converts a PDF to PNG bytes for each page using Puppeteer and PDF.js. * This method creates a temporary HTML page that loads PDF.js from a CDN, * renders each PDF page to a canvas, and then screenshots each canvas element. */ convertPDFToPngBytes(pdfBytes: Uint8Array, options?: { scale?: number; maxWidth?: number; maxHeight?: number; }): Promise; /** * Converts a PDF to WebP bytes for each page. * This method creates web-optimized images using WebP format. * WebP provides 25-35% better compression than JPEG/PNG while maintaining quality. */ convertPDFToWebpBytes(pdfBytes: Uint8Array, options?: { scale?: number; quality?: number; maxWidth?: number; maxHeight?: number; }): Promise; /** * Converts a PDF to progressive JPEG bytes for each page. * This method creates progressive JPEG images that load in multiple passes, * showing a low-quality preview first, then progressively improving. * Uses SmartJimp for true progressive JPEG encoding. */ convertPDFToJpegBytes(pdfBytes: Uint8Array, options?: { scale?: number; quality?: number; maxWidth?: number; maxHeight?: number; }): Promise; }