import type { XlsxSource } from '../io/source'; import { type SheetState, type Workbook } from '../workbook/workbook'; import { type XmlNode } from '../xml/tree'; import type { DecompressionLimits } from '../zip/decompression-guard'; /** * Options for {@link loadWorkbook}. Earlier drafts exposed `readOnly` / * `keepLinks` / `keepVba` / `dataOnly` / `richText` placeholders that the * loader silently ignored; those were removed to keep the surface honest. * Future toggles land here once their behavior is implemented. */ export interface LoadOptions { /** * Decompression-bomb safeguards applied while inflating zip entries. * Defaults to limits that fit any legitimate xlsx; pass `false` to disable * (only safe for fully trusted sources). See * {@link DecompressionLimits} for the individual knobs. */ decompressionLimits?: DecompressionLimits | false; } /** * Resolve an OPC relationship target against its source part path. * * - Targets starting with `/` are package-absolute. * - Otherwise the target is relative to the source part's parent directory. * - `..` segments collapse normally. */ export declare function resolveRelTarget(sourcePartPath: string, target: string): string; interface SheetEntry { /** Display name (`sheet/@name`). */ name: string; /** Workbook-scope sheetId (`sheet/@sheetId`). */ sheetId: number; /** Workbook rels Id (`sheet/@r:id`). */ rId: string; /** Visibility state — defaults to `'visible'` when the attribute is absent. */ state: SheetState; } /** Extract the `/` entries from a parsed `xl/workbook.xml`. */ export declare function parseSheetEntries(workbookRoot: XmlNode): SheetEntry[]; /** * Load a workbook from any {@link XlsxSource}. Currently produces a scaffold * Workbook: each Worksheet is empty (no cells / styles / shared strings / theme * yet). The next phase-3 iterations layer those in atop the same skeleton. */ export declare function loadWorkbook(source: XlsxSource, opts?: LoadOptions): Promise; export {};