interface PdfiumWasm { [k: string]: any; } interface PdfMeta { title: string; author: string; subject: string; keywords: string; creator: string; producer: string; creationDate: string; modDate: string; } interface PdfImageMeta { width: number; height: number; colorspace: ColorSpace; } interface PdfObj { $id?: number; type: string; matrix?: PdfMartix; bound?: PdfBound; color?: PdfColor; strokeColor?: PdfColor; strokeWidth?: number; } interface PdfFont { name: string; embed: boolean; weight: number; flag: number; } interface PdfImageObj extends PdfObj { type: "image"; meta?: PdfImageMeta; data?: ImageData; } interface PdfTextObj extends PdfObj { type: "text"; text: string; fontSize: number; font: PdfFont; } interface PdfPathObj extends PdfObj { type: "path"; segments: PdfSegment[]; } interface PdfSdObj extends PdfObj { type: "shading"; } interface PdfFromObj extends PdfObj { type: "from"; objs: PdfObject[]; } interface TextObjOpt { text: string; color?: PdfColor; strokeColor?: PdfColor; fontSize?: number; fontFamily?: string; x: number; y: number; } interface ImageObjOpt { rect: PdfBound; matrix?: PdfMatrix; data?: ImageData; } interface PdfSegment { type: PdfSegmentType; point: PdfPosition; isClosed: boolean; } interface PdfMartix { a: number; b: number; c: number; d: number; e: number; f: number; } interface PdfQuad { points: [ x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, ]; } type PdfQuads = PdfQuad[] | null; interface PdfBaseAnnot { $id?: number; type: string; rect?: PdfBound; strokeColor?: PdfColor; fillColor?: PdfColor; objs?: PdfObject[] | null; quads?: PdfQuads; } interface PdfTextAnno extends PdfBaseAnnot { type: "text"; content?: string; icon?: string; } interface PdfFreeTextAnno extends PdfBaseAnnot { type: "freetext"; content?: string; } interface PdfLinkAnno extends PdfBaseAnnot { type: "link"; url?: string; } interface PdfSquareAnno extends PdfBaseAnnot { type: "square"; } interface PdfCircleAnno extends PdfBaseAnnot { type: "circle"; } interface PdfHighlightAnno extends PdfBaseAnnot { type: "highlight"; } interface PdfUnderlineAnno extends PdfBaseAnnot { type: "underline"; } interface PdfStampAnno extends PdfBaseAnnot { type: "stamp"; } interface PdfLineAnno extends PdfBaseAnnot { type: "line"; } interface PdfInkAnno extends PdfBaseAnnot { type: "ink"; inks?: PdfInk[]; } interface PdfInk { point: PdfPosition; } interface PdfLinkAnnoOpt { rect: PdfBound; url: string; } interface PdfTextAnnoOpt extends TextAPOpt { rect: PdfBound; } interface PdfFreeTextAnnoOpt extends TextAPOpt { rect: PdfBound; } interface PdfSquareAnnoOpt { rect: PdfBound; strokeColor?: PdfColor; fillColor?: PdfColor; } interface PdfCircleAnnoOpt { rect: PdfBound; strokeColor?: PdfColor; fillColor?: PdfColor; } interface PdfStampAnnoOpt { rect: PdfBound; matrix?: PdfMartix; data: ImageData; } interface PdfHighlightAnnoOpt { rect: PdfBound; strokeColor?: PdfColor; fillColor?: PdfColor; } interface PdfUnderlineAnnoOpt { rect: PdfBound; strokeColor?: PdfColor; fillColor?: PdfColor; } interface PdfInkAnnoOpt { rect: PdfBound; strokeColor?: PdfColor; fillColor?: PdfColor; inks?: PdfInk[]; } interface TextAPOpt { rect: PdfBound; color?: PdfColor; fontSize?: number; content?: string; fontFamily?: FontSysName; } interface FontMapItem { ptr: number; data: Int8Array; } interface PdfBookmark { title: string; pageIdx: number; children: PdfBookmark[]; } type FontSysName = | "Helvetica" | "Helvetica-Bold" | "Helvetica-Oblique" | "Helvetica-BoldOblique" | "Times-Roman" | "Times-Bold" | "Times-Italic" | "Times-BoldItalic" | "Courier" | "Courier-Bold" | "Courier-Oblique" | "Courier-BoldOblique" | "Symbol" | "ZapfDingbats"; type FontMap = Map; type PdfBound = [x: number, y: number, w: number, h: number] | null; type PdfColor = [r: number, g: number, b: number, a: number] | null; type PdfPosition = [x: number, y: number]; type PdfObject = PdfTextObj | PdfImageObj | PdfPathObj | PdfSdObj | PdfFromObj; type PdfAnnot = | PdfTextAnno | PdfFreeTextAnno | PdfSquareAnno | PdfCircleAnno | PdfHighlightAnno | PdfUnderlineAnno | PdfStampAnno | PdfLineAnno | PdfInkAnno | PdfLinkAnno; declare enum ColorSpace { UNKNOWN, DEVICEGRAY, DEVICERGB, DEVICECMY, CALGRAY, CALRGB, LAB, ICCBASED, SEPARATION, DEVICEN, INDEXED, PATTERN, } declare enum PdfSegmentType { UNKNOWN = -1, LINETO = 0, BEZIERTO = 1, MOVETO = 2, } export { PdfObject, PdfFromObj, PdfImageObj, PdfPathObj, PdfSdObj, PdfMeta, PdfColor, PdfFont, PdfMartix, PdfBound, PdfPosition, PdfiumWasm, PdfTextObj, PdfSegment, PdfImageMeta, PdfTextAnno, PdfFreeTextAnno, PdfLinkAnno, PdfSquareAnno, PdfCircleAnno, PdfHighlightAnno, PdfUnderlineAnno, PdfStampAnno, PdfLineAnno, PdfAnnot, PdfInkAnno, PdfInk, PdfQuads, PdfLinkAnnoOpt, PdfFreeTextAnnoOpt, PdfSquareAnnoOpt, PdfCircleAnnoOpt, PdfStampAnnoOpt, PdfHighlightAnnoOpt, PdfUnderlineAnnoOpt, PdfInkAnnoOpt, PdfTextAnnoOpt, TextAPOpt, TextObjOpt, FontMap, ImageObjOpt, PdfBookmark, };