import type { FormulaCell } from '../ts-types/formula';
import type { FormulaEngine } from './formula-engine';
import type { CrossSheetFormulaManager } from './cross-sheet-formula-manager';
export interface ValidationError {
    type: 'INVALID_SHEET' | 'INVALID_CELL' | 'CIRCULAR_REFERENCE' | 'MISSING_REFERENCE';
    message: string;
    sheet: string;
    cell: FormulaCell;
    target?: string;
}
export interface ValidationResult {
    valid: boolean;
    errors: ValidationError[];
    warnings: string[];
}
export interface ValidationOptions {
    checkCircularReferences: boolean;
    checkMissingReferences: boolean;
    checkCellBounds: boolean;
    maxRecursionDepth: number;
}
export declare class CrossSheetFormulaValidator {
    private formulaEngine;
    private crossSheetManager;
    private sheetManager;
    private validationCache;
    private readonly CACHE_TTL;
    private defaultOptions;
    constructor(formulaEngine: FormulaEngine, crossSheetManager: CrossSheetFormulaManager, sheetManager?: {
        getAllSheets: () => Array<{
            sheetKey: string;
            sheetTitle: string;
        }>;
    });
    validateSheet(sheet: string, options?: Partial<ValidationOptions>): ValidationResult;
    private validateFormula;
    private extractCrossSheetReferences;
    private validateCellReferences;
    private checkCircularReferences;
    private checkMissingReferences;
    validateAllSheets(options?: Partial<ValidationOptions>): Map<string, ValidationResult>;
    validateFormulaSyntax(formula: string): {
        valid: boolean;
        error?: string;
    };
    private validateExpressionStructure;
    private isValidSheetName;
    private isValidCellReference;
    private isValidSheet;
    private parseA1Notation;
    private getA1Notation;
    private getCacheKey;
    private getCacheTimestamp;
    clearCache(): void;
    destroy(): void;
}
