import type { Document as MupdfDocument } from 'mupdf'; import type { HeadingAnchor } from '../utils/source-context.js'; import { type EmbedderInterface, type FilteredTextFragment } from './pdf-filter.js'; interface StextBbox { x: number; y: number; w: number; h: number; } /** The part of mupdf's structured-text JSON this module reads. */ interface StextJson { blocks: Array<{ type: string; /** Present on image blocks; the visual detector reads it to locate rasters. */ bbox?: StextBbox; lines?: Array<{ text: string; x: number; y: number; bbox?: StextBbox; font: { size: number; name?: string; weight?: string; }; }>; }>; } /** * `text` is post-header/footer-filtering; `stextJson` is the raw mupdf JSON, * kept for the downstream visual detector. */ interface ExtractedPage { headings: HeadingAnchor[]; pageNum: number; text: string; textFragments: FilteredTextFragment[]; stextJson: StextJson; } /** Result returned by `extractPdfPages`. */ interface ExtractedPdf { pages: ExtractedPage[]; metadataTitle: string | undefined; page1FontHint: { text: string; fontSize: number; } | undefined; } export declare function extractPdfPages(doc: MupdfDocument, embedder: EmbedderInterface, stextOptions: string): Promise; export {}; //# sourceMappingURL=pdf-extract.d.ts.map