import type { FormulaCell } from '../ts-types/formula'; import type { FormulaEngine } from './formula-engine'; import type { CrossSheetFormulaManager } from './cross-sheet-formula-manager'; export interface DataChangeEvent { sheet: string; cells: FormulaCell[]; oldValues: any[]; newValues: any[]; timestamp: number; } export interface SyncOptions { immediate: boolean; batchSize: number; timeout: number; } export declare class CrossSheetDataSynchronizer { private formulaEngine; private crossSheetManager; private changeQueue; private isSyncing; private syncTimer; private options; private listeners; constructor(formulaEngine: FormulaEngine, crossSheetManager: CrossSheetFormulaManager); registerDataChange(sheet: string, cells: FormulaCell[], oldValues: any[], newValues: any[]): void; private scheduleSync; private processChanges; private groupChangesBySheet; private syncSheetChanges; getCrossSheetDependencies(): Map; validateCrossSheetReferences(): { valid: boolean; errors: string[]; }; private detectCircularDependencies; addDataChangeListener(sheet: string, listener: (event: DataChangeEvent) => void): void; removeDataChangeListener(sheet: string, listener: (event: DataChangeEvent) => void): void; private emitDataChange; forceSync(): Promise; clearSyncQueue(): void; getSyncStatus(): { pendingChanges: number; isSyncing: boolean; lastSyncTime: number | null; }; updateSyncOptions(options: Partial): void; destroy(): void; }