import { SheetDoc } from '../../core/ir/sheet.js'; /** * Read a legacy `.xls` (BIFF8) workbook into a {@link SheetDoc} — the same IR * tree the OOXML xlsx reader produces. Reads the workbook globals (sheet * directory, shared strings, date system, styles, defined names, Escher BLIP * store) and each worksheet substream's cells, styling and overlays. * * @param xls The `.xls` bytes (an OLE2/CFB container holding a `Workbook` stream). * @returns The parsed spreadsheet IR tree. * @throws Error on a non-OLE / non-BIFF8 input or a workbook with no worksheets * (the reader's sniff keeps malformed inputs away); a structurally odd record * is skipped, never fatal. */ export declare function readXlsToSheetDoc(xls: Uint8Array): SheetDoc; /** * §2.5.198.5 RkNumber — decode a packed 30-bit number: bit 0 means ÷100, bit 1 * selects integer vs. the 30 high bits of an IEEE double. Exported for unit tests * (the int / ×100 / IEEE paths). */ export declare function decodeRk(rk: number): number; /** * §2.4.265 SST — read the shared-string table: `cstTotal`/`cstUnique` then * `cstUnique` rich strings, via a continuation-aware reader (a string can split * across a CONTINUE boundary, and the byte after the boundary is a fresh * `fHighByte` flag for the rest). Exported for unit tests of the continuation * handling. * * @param blocks The SST record's data followed by each CONTINUE record's data. * @returns The unique shared strings, in index order. */ export declare function readSst(blocks: ReadonlyArray): Array;