/** * Mutable sheet collection for {@link Workbook}. * * @private Not part of the public API. Application code uses * `Workbook.worksheets`, `Workbook.sheet`, `Workbook.addSheet`, * `Workbook.removeSheet`, and `Workbook.moveSheet` (API-RULES R1.5). * * Citations: CT_Sheets / CT_Sheet in transitional `sml.xsd`; worksheet rel types in * `src/xlsx/core/package/constants.ts`. */ import { OpcPackage } from '../core/package/opc-package'; import { OpcRelationship } from '../core/package/relationships'; import { SheetVisibility, SheetXmlEntry } from './workbook-xml'; import { Worksheet, WorksheetCellHost } from './worksheet'; import { WorksheetImpl } from './worksheet'; /** * Host callbacks supplied by {@link Workbook}. * @private */ export interface SheetCollectionHost { readonly package: OpcPackage; readonly workbookPartName: string; markDirty(): void; /** Notify defined-names of a sheet removed at zero-based index. */ onSheetRemoved(deletedIndex: number): void; /** Notify defined-names of a sheet reorder. */ onSheetMoved(fromIndex: number, toIndex: number): void; allocateSheetId(): number; allocateRelationshipId(): string; nextWorksheetPartName(): string; createWorksheetCellHost(): WorksheetCellHost; getPrintName(name: 'Print_Area' | 'Print_Titles', sheetIndex: number): string | undefined; setPrintName(name: 'Print_Area' | 'Print_Titles', sheetIndex: number, content: string | undefined): void; } /** * Ordered collection of worksheets (and preservable non-worksheet sheets). * @private */ export declare class SheetCollection { private readonly host; private readonly items; /** @private */ constructor(host: SheetCollectionHost, sheets: ReadonlyArray); /** * Number of sheets in workbook order. */ readonly length: number; /** * Sheet at zero-based index. * @throws RangeError when out of bounds */ get(index: number): Worksheet; getPrintName(name: 'Print_Area' | 'Print_Titles', sheet: WorksheetImpl): string | undefined; setPrintName(name: 'Print_Area' | 'Print_Titles', sheet: WorksheetImpl, content: string | undefined): void; /** * Find sheet by name (case-insensitive). */ getByName(name: string): Worksheet | undefined; /** * Iterate sheets in workbook.xml order. */ [Symbol.iterator](): Iterator; /** * Add a new visible worksheet. Optional name defaults to `SheetN`. */ add(name?: string): Worksheet; /** * Remove a worksheet. Fails if it is the last worksheet-kind sheet. */ remove(sheet: Worksheet): void; /** * Move sheet from one index to another (reorder). */ move(fromIndex: number, toIndex: number): void; /** @private */ rename(sheet: WorksheetImpl, newName: string): void; /** @private */ setVisibility(sheet: WorksheetImpl, visibility: SheetVisibility): void; /** @private — snapshot for serialize */ toXmlEntries(): SheetXmlEntry[]; /** @private */ assertUniqueName(name: string, except?: WorksheetImpl): void; private defaultNewName; } /** * Create collection and bound worksheets from parsed entries + package rels. * @private */ export declare function createSheetCollection(host: SheetCollectionHost, entries: ReadonlyArray, relationships: ReadonlyArray): SheetCollection; /** * Relative Target from workbook part to worksheet part (e.g. `worksheets/sheet1.xml`). * @private */ export declare function relativeTargetFromWorkbook(workbookPartName: string, sheetPartName: string): string;