import type { CellCoord, CellRange, CellValue } from './base'; export interface SortInfo { field: string; order: 'asc' | 'desc'; col: number; } export interface FilterInfo { col: number; conditions: FilterCondition[]; } export interface FilterCondition { type: 'equals' | 'contains' | 'greater_than' | 'less_than' | 'between'; value: string | number | [number, number]; } export interface Range { startRow: number; endRow: number; startCol: number; endCol: number; } export declare enum VTableSheetEventType { FORMULA_CALCULATE_START = "formula_calculate_start", FORMULA_CALCULATE_END = "formula_calculate_end", FORMULA_ERROR = "formula_error", FORMULA_DEPENDENCY_CHANGED = "formula_dependency_changed", FORMULA_ADDED = "formula_added", FORMULA_REMOVED = "formula_removed", DATA_LOADED = "data_loaded", SPREADSHEET_READY = "spreadsheet_ready", SPREADSHEET_DESTROYED = "spreadsheet_destroyed", SPREADSHEET_RESIZED = "spreadsheet_resized", SHEET_ADDED = "sheet_added", SHEET_REMOVED = "sheet_removed", SHEET_RENAMED = "sheet_renamed", SHEET_ACTIVATED = "sheet_activated", SHEET_DEACTIVATED = "sheet_deactivated", SHEET_MOVED = "sheet_moved", SHEET_VISIBILITY_CHANGED = "sheet_visibility_changed", IMPORT_START = "import_start", IMPORT_COMPLETED = "import_completed", IMPORT_ERROR = "import_error", EXPORT_START = "export_start", EXPORT_COMPLETED = "export_completed", EXPORT_ERROR = "export_error", CROSS_SHEET_REFERENCE_UPDATED = "cross_sheet_reference_updated", CROSS_SHEET_FORMULA_CALCULATE_START = "cross_sheet_formula_calculate_start", CROSS_SHEET_FORMULA_CALCULATE_END = "cross_sheet_formula_calculate_end" } export declare const WORKSHEET_EVENT_TYPES: readonly ["formula_calculate_start", "formula_calculate_end", "formula_error", "formula_dependency_changed", "formula_added", "formula_removed", "data_loaded", "data_sorted", "data_filtered"]; export declare const SPREADSHEET_EVENT_TYPES: readonly ["spreadsheet_ready", "spreadsheet_destroyed", "spreadsheet_resized", "sheet_added", "sheet_removed", "sheet_renamed", "sheet_activated", "sheet_deactivated", "sheet_moved", "sheet_visibility_changed", "import_start", "import_completed", "import_error", "export_start", "export_completed", "export_error", "cross_sheet_reference_updated", "cross_sheet_formula_calculate_start", "cross_sheet_formula_calculate_end"]; export interface SheetActivatedEvent { sheetKey: string; sheetTitle: string; previousSheetKey?: string; previousSheetTitle?: string; } export interface SheetResizedEvent { sheetKey: string; sheetTitle: string; width: number; height: number; } export interface FormulaCalculateEvent { sheetKey: string; formulaCount?: number; duration?: number; } export interface FormulaErrorEvent { sheetKey: string; cell: CellCoord & { sheet: string; }; formula: string; error: string | Error; } export interface FormulaChangeEvent { sheetKey: string; cell: CellCoord; formula?: string; } export interface FormulaDependencyChangedEvent { sheetKey: string; } export interface DataSortedEvent { sheetKey: string; sortInfo: SortInfo; } export interface DataFilteredEvent { sheetKey: string; filterInfo: FilterInfo; } export interface DataLoadedEvent { sheetKey: string; rowCount: number; colCount: number; } export interface SheetAddedEvent { sheetKey: string; sheetTitle: string; index: number; } export interface SheetRemovedEvent { sheetKey: string; sheetTitle: string; index: number; } export interface SheetRenamedEvent { sheetKey: string; oldTitle: string; newTitle: string; } export interface SheetMovedEvent { sheetKey: string; fromIndex: number; toIndex: number; } export interface SheetVisibilityChangedEvent { sheetKey: string; visible: boolean; } export interface ImportEvent { fileType: 'xlsx' | 'xls' | 'csv'; sheetCount?: number; error?: string | Error; } export interface ExportEvent { fileType: 'xlsx' | 'csv'; sheetCount?: number; allSheets: boolean; error?: string | Error; } export interface CrossSheetReferenceEvent { sourceSheetKey: string; targetSheetKeys: string[]; affectedFormulaCount: number; } export interface RangeDataChangedEvent { sheetKey: string; range: CellRange; changes: Array<{ row: number; col: number; oldValue: CellValue; newValue: CellValue; }>; } export interface SpreadSheetEventMap { spreadsheet_ready: undefined; spreadsheet_destroyed: undefined; spreadsheet_resized: { width: number; height: number; }; sheet_added: SheetAddedEvent; sheet_removed: SheetRemovedEvent; sheet_renamed: SheetRenamedEvent; sheet_activated: SheetActivatedEvent; sheet_deactivated: SheetActivatedEvent; sheet_moved: SheetMovedEvent; sheet_visibility_changed: SheetVisibilityChangedEvent; import_start: ImportEvent; import_completed: ImportEvent; import_error: ImportEvent; export_start: ExportEvent; export_completed: ExportEvent; export_error: ExportEvent; cross_sheet_reference_updated: CrossSheetReferenceEvent; cross_sheet_formula_calculate_start: undefined; cross_sheet_formula_calculate_end: undefined; } export interface WorkSheetEventMap { formula_calculate_start: FormulaCalculateEvent; formula_calculate_end: FormulaCalculateEvent; formula_error: FormulaErrorEvent; formula_dependency_changed: FormulaDependencyChangedEvent; formula_added: FormulaChangeEvent; formula_removed: FormulaChangeEvent; data_loaded: DataLoadedEvent; sheet_added: SheetAddedEvent; sheet_removed: SheetRemovedEvent; sheet_renamed: SheetRenamedEvent; sheet_moved: SheetMovedEvent; sheet_activated: SheetActivatedEvent; sheet_deactivated: SheetActivatedEvent; sheet_visibility_changed: SheetVisibilityChangedEvent; import_start: ImportEvent; import_completed: ImportEvent; import_error: ImportEvent; export_start: ExportEvent; export_completed: ExportEvent; export_error: ExportEvent; cross_sheet_reference_updated: CrossSheetReferenceEvent; cross_sheet_formula_calculate_start: undefined; cross_sheet_formula_calculate_end: undefined; }