import type { CompiledFormula, StructuralAxisTransform } from '@bilig/formula';
import type { RuntimeFormula } from '../runtime-state.js';
export declare function dependencyTouchesSheet(dependency: string, sheetName: string): boolean;
export declare function rangeDependencyAxisAffected(rangeDescriptor: {
    sheetId: number;
    row1: number;
    row2: number;
    col1: number;
    col2: number;
}, targetSheetId: number, transform: StructuralAxisTransform): boolean;
export declare function runtimeDirectRangeAxisAffected(targetSheetId: number | undefined, targetSheetName: string, transform: StructuralAxisTransform, range: {
    sheetName: string;
    rowStart: number;
    rowEnd: number;
    col: number;
} | undefined): boolean;
export declare function isStructurallyStableSimpleFormulaNode(node: CompiledFormula['optimizedAst']): boolean;
export declare function structuralRewritePreservesValue(formula: RuntimeFormula, rewritten: {
    compiled: CompiledFormula;
    reusedProgram: boolean;
}, transform: StructuralAxisTransform): boolean;
export declare function structuralRewritePreservesBinding(formula: RuntimeFormula, rewritten: {
    compiled: CompiledFormula;
    reusedProgram: boolean;
}, allowsRangeReuse: boolean): boolean;
export declare function structuralDirectAggregateRewritePreservesValue(formula: RuntimeFormula, rewritten: {
    compiled: CompiledFormula;
    reusedProgram: boolean;
}, transform: StructuralAxisTransform): boolean;
