import type { Op, Sheet } from '@fortune-sheet/core'; import type { OfficeKernelSpreadsheetCoordinate, OfficeKernelSpreadsheetInputCell, OfficeKernelSpreadsheetInputSheet, OfficeKernelSpreadsheetSessionCellChange } from '../../../kernel/office-kernel-protocol'; import type { WorkSpreadsheetContent, WorkSpreadsheetFormulaRangeType, WorkSpreadsheetSheet, WorkSpreadsheetTable } from '../work-types'; export declare const SPREADSHEET_KERNEL_MAX_PATCH_CELLS = 10000; type SpreadsheetKernelSheet = Sheet & { tables?: WorkSpreadsheetTable[]; }; export interface SpreadsheetKernelWorkbook { fallbackCells: SpreadsheetKernelFallbackCell[]; sheets: OfficeKernelSpreadsheetInputSheet[]; sourceKey: string; sourceState: SpreadsheetKernelSourceState; } export interface SpreadsheetKernelFallbackCell extends OfficeKernelSpreadsheetCoordinate { type: WorkSpreadsheetFormulaRangeType; } export interface SpreadsheetKernelOperationProjection { changes: OfficeKernelSpreadsheetSessionCellChange[]; sourceChanged: boolean; workbook: SpreadsheetKernelWorkbook; } export interface SpreadsheetKernelWorkbookPreparation { hasFormulaCells: boolean; workbook: SpreadsheetKernelWorkbook | null; } interface SpreadsheetKernelSourceState { cellCount: number; fingerprintA: bigint; fingerprintB: bigint; sourceCells: Map; structureKey: string; } export declare function createSpreadsheetKernelWorkbook(content: Pick): SpreadsheetKernelWorkbook | null; /** * Prepares automatic calculation without compiling a value-only workbook that * cannot produce any formula result. A later formula edit will prepare a fresh * snapshot from the updated controlled content. */ export declare function prepareSpreadsheetKernelWorkbook(content: Pick): SpreadsheetKernelWorkbookPreparation; export declare function refreshSpreadsheetKernelWorkbook(sheets: readonly SpreadsheetKernelSheet[], fallbackCells: readonly SpreadsheetKernelFallbackCell[]): SpreadsheetKernelWorkbook | null; export declare function projectSpreadsheetKernelWorkbookOperations(previous: SpreadsheetKernelWorkbook, sheets: readonly WorkSpreadsheetSheet[], operations: readonly Op[]): SpreadsheetKernelOperationProjection | null; export declare function spreadsheetOperationsMayChangeCalculation(operations: readonly Op[], workbook?: SpreadsheetKernelWorkbook | null): boolean; export declare function spreadsheetKernelCellKey(cell: Pick): string; export declare function sameSpreadsheetKernelInputCell(previous: OfficeKernelSpreadsheetInputCell, current: OfficeKernelSpreadsheetInputCell): boolean; export {};