import { DocumentInitParameters, PDFDocumentProxy } from "./types/src/display/api.js"; import { Canvas, SKRSContext2D } from "@napi-rs/canvas"; import * as PDFJS from "./types/src/pdf.js"; //#region src/_internal/canvas.d.ts interface CanvasFactoryContext { canvas?: HTMLCanvasElement | Canvas; context?: CanvasRenderingContext2D | SKRSContext2D | null; } /** * Derived from the PDF.js project by the Mozilla Foundation. * @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18 * @license Apache-2.0 */ declare class BaseCanvasFactory { #private; constructor({ enableHWA }?: { enableHWA?: boolean | undefined; }); create(width: number, height: number): { canvas: Canvas | HTMLCanvasElement; context: SKRSContext2D | CanvasRenderingContext2D | null; }; reset({ canvas }: CanvasFactoryContext, width: number, height: number): void; destroy(context: CanvasFactoryContext): void; _createCanvas(width: number, height: number): HTMLCanvasElement | Canvas; } /** * Derived from the PDF.js project by the Mozilla Foundation. * @see https://github.com/mozilla/pdf.js/blob/b8de9a372f9bbf7e33adb362eeae5ef1919dba73/src/display/canvas_factory.js#L18 * @license Apache-2.0 */ declare class DOMCanvasFactory extends BaseCanvasFactory { _document: Document; constructor({ ownerDocument, enableHWA }?: { ownerDocument?: Document | undefined; enableHWA?: boolean | undefined; }); _createCanvas(width: number, height: number): HTMLCanvasElement; } declare class NodeCanvasFactory extends BaseCanvasFactory { constructor({ enableHWA }?: { enableHWA?: boolean | undefined; }); _createCanvas(width: number, height: number): Canvas; } //#endregion //#region src/image.d.ts interface ExtractedImageObject { data: Uint8ClampedArray; width: number; height: number; channels: 1 | 3 | 4; key: string; } /** * Extracts images from a specific page of a PDF document, including necessary metadata, * such as width, height, and calculated color channels. * * @example * const imagesData = await extractImages(pdf, pageNum) * * for (const imgData of imagesData) { * const imageIndex = totalImagesProcessed + 1 * await sharp(imgData.data, { * raw: { width: imgData.width, height: imgData.height, channels: imgData.channels } * }) * .png() * .toFile(`${imageIndex}.png`) * } */ declare function extractImages$1(data: DocumentInitParameters['data'] | PDFDocumentProxy, pageNumber: number): Promise; declare function renderPageAsImage$1(data: DocumentInitParameters['data'] | PDFDocumentProxy, pageNumber: number, options?: { canvasImport?: () => Promise; /** @default 1.0 */ scale?: number; width?: number; height?: number; toDataURL?: false; }): Promise; declare function renderPageAsImage$1(data: DocumentInitParameters['data'] | PDFDocumentProxy, pageNumber: number, options: { canvasImport?: () => Promise; /** @default 1.0 */ scale?: number; width?: number; height?: number; toDataURL: true; }): Promise; declare function createIsomorphicCanvasFactory(canvasImport?: () => Promise): Promise; //#endregion //#region src/links.d.ts declare function extractLinks$1(data: DocumentInitParameters['data'] | PDFDocumentProxy): Promise<{ totalPages: number; links: string[]; }>; //#endregion //#region src/meta.d.ts declare function getMeta$1(data: DocumentInitParameters['data'] | PDFDocumentProxy, options?: { parseDates?: boolean; }): Promise<{ info: Record; metadata: import("./types/src/display/metadata.js").Metadata; }>; //#endregion //#region src/text.d.ts interface StructuredTextItem { /** Text content. */ str: string; /** X position in PDF coordinate space (origin: bottom-left). */ x: number; /** Y position in PDF coordinate space (origin: bottom-left). */ y: number; /** Width in device space. */ width: number; /** Height in device space. */ height: number; /** Font size derived from the transformation matrix. */ fontSize: number; /** Font family name. */ fontFamily: string; /** Text direction: `"ltr"`, `"rtl"`, or `"ttb"`. */ dir: string; /** Whether the text item is followed by a line break. */ hasEOL: boolean; } declare function extractTextItems$1(data: DocumentInitParameters['data'] | PDFDocumentProxy): Promise<{ totalPages: number; items: StructuredTextItem[][]; }>; declare function extractText$1(data: DocumentInitParameters['data'] | PDFDocumentProxy, options?: { mergePages?: false; }): Promise<{ totalPages: number; text: string[]; }>; declare function extractText$1(data: DocumentInitParameters['data'] | PDFDocumentProxy, options: { mergePages: true; }): Promise<{ totalPages: number; text: string; }>; declare function extractText$1(data: DocumentInitParameters['data'] | PDFDocumentProxy, options?: { mergePages?: boolean; }): Promise<{ totalPages: number; text: string | string[]; }>; //#endregion //#region src/config.d.ts /** * By default, unpdf will use the latest version of PDF.js compiled for * serverless environments. If you want to use a different version, you can * provide a custom resolver function. * * @example * // Use the official PDF.js build (make sure to install it first) * import { definePDFJSModule } from 'unpdf' * * await definePDFJSModule(() => import('pdfjs-dist')) */ declare function definePDFJSModule(pdfjs: () => Promise): Promise; /** @deprecated Use `definePDFJSModule` instead. Will be removed in v2. */ declare function configureUnPDF(options: { pdfjs?: () => Promise; }): Promise; //#endregion //#region src/utils.d.ts /** * Returns a PDFDocumentProxy instance from a given binary data. * * Applies the following defaults: * - `useSystemFonts: true` * * In Node.js environments, additionally applies: * - `disableFontFace: true` * - `standardFontDataUrl` resolved from the local `pdfjs-dist` package * - `cMapUrl` and `cMapPacked` resolved from the local `pdfjs-dist` package */ declare function getDocumentProxy(data: DocumentInitParameters['data'], options?: DocumentInitParameters): Promise; declare function getResolvedPDFJS(): Promise; declare function resolvePDFJSImport(pdfjsResolver?: () => Promise, { reload }?: { reload?: boolean | undefined; }): Promise; //#endregion //#region src/index.d.ts declare const getMeta: typeof getMeta$1; declare const extractText: typeof extractText$1; declare const extractTextItems: typeof extractTextItems$1; declare const extractImages: typeof extractImages$1; declare const renderPageAsImage: typeof renderPageAsImage$1; declare const extractLinks: typeof extractLinks$1; //#endregion export { type StructuredTextItem, configureUnPDF, createIsomorphicCanvasFactory, definePDFJSModule, extractImages, extractLinks, extractText, extractTextItems, getDocumentProxy, getMeta, getResolvedPDFJS, renderPageAsImage, resolvePDFJSImport };