import type { Cell } from '@fortune-sheet/core'; import type { WorkSpreadsheetSheet, WorkSpreadsheetTable, WorkSpreadsheetTableColumn } from '../work-types'; /** Keep calculated-column metadata small enough to cross every editor boundary. */ export declare const MAX_SPREADSHEET_TABLE_CALCULATED_FORMULA_LENGTH = 8192; /** * Normalizes the editable form of a table-column formula. Native table parts * omit the leading `=`, while cell formulas and the calculation kernel keep * it. Unsafe or external formulas are deliberately not treated as automatic * fill rules. */ export declare function normalizeSpreadsheetTableCalculatedFormula(value: unknown): string | undefined; /** * Finds a shared current-row formula already authored in a table column. * Ordinary one-off A1 formulas are intentionally ignored so inserting a row * cannot unexpectedly overwrite a user's manual exception. */ export declare function inferredSpreadsheetTableCalculatedFormula(sheet: WorkSpreadsheetSheet, table: WorkSpreadsheetTable, columnOffset: number): string | undefined; /** * Reconciles declared calculated-column formulas with formulas authored in the * controlled cell matrix. A conflicting column is made manual instead of * guessing which formula should be copied into a new row. */ export declare function reconcileSpreadsheetTableCalculatedColumns(sheet: WorkSpreadsheetSheet, table: WorkSpreadsheetTable): WorkSpreadsheetTableColumn[]; /** Returns true only for a formula safe to copy into a new table row. */ export declare function isSpreadsheetTableCalculatedFormula(value: unknown): value is string; /** * Applies calculated-column formulas to newly inserted body rows. The helper * deliberately edits only empty cells; copied values and authored exceptions * remain authoritative. Both Fortune's dense matrix and sparse `celldata` * storage are updated without materializing unrelated rows or columns. */ export declare function fillSpreadsheetTableCalculatedColumns(sheet: WorkSpreadsheetSheet, table: WorkSpreadsheetTable, rows: readonly number[]): WorkSpreadsheetSheet; export declare function spreadsheetTableCellAt(sheet: WorkSpreadsheetSheet, row: number, column: number): Cell | null; export declare function spreadsheetTableCellIsEmpty(cell: Cell | null | undefined): boolean; /** Copy visual cell metadata without carrying a stale cached formula result. */ export declare function spreadsheetCellWithCalculatedFormula(source: Cell | null | undefined, formula: string): Cell; /** Iterate formula-bearing cells without forcing a dense worksheet matrix. */ export declare function spreadsheetTableFormulaCells(sheet: WorkSpreadsheetSheet): Array<{ cell: Cell; column: number; row: number; }>;