import type { Cell, Op, Selection } from '@fortune-sheet/core'; import type { WorkSpreadsheetContent, WorkSpreadsheetDateSystem } from '../work-types'; import type { OfficeSelectOption } from './office-select'; export interface SpreadsheetSelectionSummary { average: number | null; nonEmptyCount: number; numericCount: number; sum: number | null; } export declare function spreadsheetSelectionReference(selection: Pick): string; export declare function spreadsheetSingleRange(selection: Pick): { row: number[]; column: number[]; }; export declare function spreadsheetCellAt(sheet: WorkSpreadsheetContent['sheets'][number] | undefined, row: number | undefined, column: number | undefined): Cell | null; export declare function spreadsheetSelectionSummary(sheet: WorkSpreadsheetContent['sheets'][number] | undefined, selection: Pick): SpreadsheetSelectionSummary; export declare function spreadsheetFontSizeOptions(current: number | undefined): { value: string; label: string; }[]; export declare function spreadsheetFontFamilyOptions(current: string | undefined): OfficeSelectOption[]; export declare function spreadsheetSheetsWithFiniteSelections(sheets: WorkSpreadsheetContent['sheets']): WorkSpreadsheetContent['sheets']; export declare function spreadsheetSheetsForFortune(sheets: WorkSpreadsheetContent['sheets'], namedRanges?: WorkSpreadsheetContent['namedRanges']): WorkSpreadsheetContent['sheets']; export declare function spreadsheetSheetsFromFortune(sheets: WorkSpreadsheetContent['sheets'], sourceSheets: WorkSpreadsheetContent['sheets'], operations?: readonly Op[], dateSystem?: WorkSpreadsheetDateSystem): WorkSpreadsheetContent['sheets']; export declare function finiteSpreadsheetSelection(selection: Selection | undefined): Selection; export declare function sameSpreadsheetWorkbookState(changed: WorkSpreadsheetContent['sheets'], rendered: WorkSpreadsheetContent['sheets']): boolean; /** * Answers the workbook equality check from Fortune's exact operation batch * without walking unrelated matrix cells. A null result requires the legacy * full comparison because the batch is missing or too broad to prove safely. */ export declare function sameSpreadsheetWorkbookStateAfterOperations(changed: WorkSpreadsheetContent['sheets'], rendered: WorkSpreadsheetContent['sheets'], operations: readonly Op[]): boolean | null; export declare function sameSpreadsheetHistoryContent(left: WorkSpreadsheetContent, right: WorkSpreadsheetContent): boolean; export declare function spreadsheetContentWithSelection(content: WorkSpreadsheetContent, sheetId: string, selection: Selection | null | undefined): WorkSpreadsheetContent; export declare function spreadsheetContentWithSelections(content: WorkSpreadsheetContent, sheetId: string, selections: readonly Selection[]): WorkSpreadsheetContent; export declare function isSpreadsheetNativeTextUndoTarget(target: EventTarget | null): boolean; export declare function isSpreadsheetCellEditingTarget(target: EventTarget | null): boolean; export declare function isSpreadsheetCellEditorTarget(target: EventTarget | null): boolean; export declare function spreadsheetFormulaBarSelectAllTarget(event: KeyboardEvent): HTMLElement | null; export declare function selectSpreadsheetFormulaBarContents(event: KeyboardEvent): boolean;