import type { FormulaCell } from '../ts-types/formula';
import type { FormulaEngine } from './formula-engine';
export interface CrossSheetReference {
    sourceSheet: string;
    targetSheet: string;
    sourceCell: FormulaCell;
    targetCells: FormulaCell[];
    formula: string;
}
export interface CrossSheetDependency {
    dependentSheet: string;
    precedentSheet: string;
    dependentCells: FormulaCell[];
    precedentCells: FormulaCell[];
}
export declare class CrossSheetFormulaManager {
    private formulaEngine;
    private sheetManager;
    private crossSheetDependencies;
    private reverseCrossSheetDependencies;
    private calculationCache;
    private readonly CACHE_TTL;
    constructor(formulaEngine: FormulaEngine, sheetManager?: {
        getAllSheets: () => Array<{
            sheetKey: string;
            sheetTitle: string;
        }>;
    });
    registerCrossSheetReference(formula: string, sourceCell: FormulaCell): CrossSheetReference[];
    private isValidSheet;
    private extractTargetSheets;
    private extractTargetCells;
    private updateCrossSheetDependency;
    getCrossSheetDependencies(sheet: string): CrossSheetDependency[];
    private getDependentCells;
    private getPrecedentCells;
    updateCrossSheetReferences(targetSheet: string, changedCells: FormulaCell[]): Promise<void>;
    private formulaReferencesCells;
    private recalculateFormula;
    private recalculateDependents;
    validateCrossSheetReferences(sheet: string): {
        valid: boolean;
        errors: string[];
    };
    getCachedValue(cell: FormulaCell): any;
    clearCache(): void;
    clearSheetDependencies(sheet: string): void;
    private parseA1Notation;
    private getA1Notation;
    private getCacheKey;
    destroy(): void;
}
