import { DocumentReader, ReadResult } from '../core/ir/adapters.js'; import { FlowDoc } from '../core/ir/flow.js'; import { SheetDoc } from '../core/ir/sheet.js'; import { ProjectSheetOptions } from './sheet-to-flow.js'; /** * Read a `.xlsx` and project it to a {@link FlowDoc} in one step: * {@link readXlsxToSheetDoc} then {@link projectSheetDoc}. * * Parsing itself is lossless — SpreadsheetML maps cleanly onto the sheet IR. * The losses come from the projection: the print model's defence-in-depth caps * (grid size, per-sheet text budget, sparkline range) clip pathological sheets, * and each clip is reported rather than applied in silence. * * @param xlsx The `.xlsx` (OPC ZIP) bytes. * @param options Projection knobs (the W9 reference date). * @returns The flow document plus whatever the projection had to clip. */ export declare function readXlsx(xlsx: Uint8Array, options?: ProjectSheetOptions): ReadResult; /** * Read a `.xlsx` into the {@link SheetDoc} SpreadsheetML IR node. Everything that * needs the OPC package — workbook/worksheet/styles/shared-string parsing, chart * and drawing resolution, tables, pivots, slicers, hyperlinks, comments and * controls — happens here; the SheetDoc → FlowDoc projection (sheet-to-flow) is * then a pure transform. * * @param xlsx The `.xlsx` (OPC ZIP) bytes. * @returns The parsed spreadsheet IR tree. * @throws Error when `xl/workbook.xml` is missing or the workbook has no sheets. */ export declare function readXlsxToSheetDoc(xlsx: Uint8Array): SheetDoc; /** * The OOXML `.xlsx` {@link DocumentReader}: sniffs the OPC ZIP's directory for * `xl/workbook.xml` and reads it into a {@link SheetDoc}. The reader's native * tree is the SheetDoc; the facade/Ream project it to a {@link FlowDoc} for * rendering (E-SHEET SB1). */ export declare const xlsxReader: DocumentReader;