import { type CellValue } from '@bilig/protocol';
import type { EngineRuntimeState, RuntimeDirectScalarDescriptor } from '../runtime-state.js';
import type { DirectFormulaIndexCollection, DirectScalarCurrentOperand } from './direct-formula-index-collection.js';
interface OperationFormulaReplacementDirectScalarArgs {
    readonly state: Pick<EngineRuntimeState, 'formulas' | 'workbook'>;
    readonly getSingleEntityDependent: (entityId: number) => number;
    readonly evaluateDirectScalarCurrentValue: (directScalar: RuntimeDirectScalarDescriptor) => DirectScalarCurrentOperand | undefined;
    readonly canSkipFormulaColumnVersion: (cellIndex: number) => boolean;
    readonly applyTerminalDirectFormulaNumericResult: (cellIndex: number, value: number) => void;
    readonly tryMarkDirectScalarLinearDeltaClosure: (cellIndex: number, oldValue: CellValue, newValue: CellValue, collection: DirectFormulaIndexCollection) => boolean;
    readonly applyDirectFormulaCurrentResult: (cellIndex: number, result: DirectScalarCurrentOperand) => boolean;
}
interface OperationFormulaReplacementDirectScalarRequest {
    readonly cellIndex: number;
    readonly oldNumber: number | undefined;
    readonly changedTopology: boolean;
    readonly postRecalcDirectFormulaIndices: DirectFormulaIndexCollection;
}
export declare function tryApplyOperationFormulaReplacementAsDirectScalarDeltaRoot(args: OperationFormulaReplacementDirectScalarArgs, request: OperationFormulaReplacementDirectScalarRequest): boolean;
export {};
