import type { Cell, CellMatrix } from '@fortune-sheet/core'; export declare const SPREADSHEET_SHOWN_COMMENT_CELLS_PROPERTY = "__a3sShownCommentCells"; export interface SpreadsheetMatrixProfile { columnCount: number; formulaCells: readonly Readonly<{ column: number; row: number; }>[]; fortuneReady: boolean; historyRoot: object; historyState: object; populatedCellCount: number; protectionCellKey: string; rowCount: number; shownCommentCells: readonly Readonly<{ c: number; r: number; }>[]; } export interface SpreadsheetMatrixCellChange { column: number; current: Cell | null | undefined; previous: Cell | null | undefined; row: number; } interface ImportedSpreadsheetMatrixOptions { columnCount: number; formulaCells: readonly Readonly<{ column: number; row: number; }>[]; fortuneReady: boolean; populatedCellCount: number; protectionCellKey: string; rowCount: number; shownCommentCells: readonly Readonly<{ c: number; r: number; }>[]; } /** * Freezes a package-owned import cell before it becomes controlled content. * Fortune can then share the cell as an Immer base value without recursively * freezing or cloning every populated cell during editor initialization. */ export declare function freezeImportedSpreadsheetCell(cell: Cell): Cell; /** * Authenticates a normalized, package-owned matrix for clone-free projection. * The registry is identity-based, so an edited or host-created matrix cannot * accidentally inherit the optimization. */ export declare function registerImportedSpreadsheetMatrix(data: CellMatrix, options: ImportedSpreadsheetMatrixOptions): void; /** * Carries import-time summaries across a bounded cell edit without rescanning * the complete matrix. The source identity must have been authenticated by * this package and must already be directly consumable by Fortune. */ export declare function registerDerivedSpreadsheetMatrix(data: CellMatrix, source: CellMatrix, changes: readonly SpreadsheetMatrixCellChange[]): boolean; export declare function spreadsheetMatrixProfile(data: CellMatrix | undefined): SpreadsheetMatrixProfile | undefined; export declare function attachSpreadsheetShownCommentCells(data: CellMatrix, cells: readonly Readonly<{ c: number; r: number; }>[]): void; export {};