import type { EngineCellMutationRef } from '../../cell-mutations-at.js';
import type { EngineRuntimeState, RuntimeDirectScalarDescriptor } from '../runtime-state.js';
import type { DirectScalarCurrentOperand, PendingNumericCellValues } from './direct-formula-index-collection.js';
export declare function createOperationDirectFormulaValues(args: {
    readonly state: Pick<EngineRuntimeState, 'workbook' | 'strings'>;
}): {
    readonly readDirectScalarCellNumber: (cellIndex: number) => number | undefined;
    readonly directScalarCellNumericValue: (cellIndex: number | undefined) => number | undefined;
    readonly directScalarCurrentResultMatchesCell: (cellIndex: number, result: DirectScalarCurrentOperand) => boolean;
    readonly directScalarNumericResultMatchesCell: (cellIndex: number, result: number) => boolean;
    readonly applyDirectFormulaCurrentResult: (cellIndex: number, result: DirectScalarCurrentOperand) => boolean;
    readonly applyDirectFormulaNumericResult: (cellIndex: number, value: number) => void;
    readonly applyTerminalDirectFormulaNumericResult: (cellIndex: number, value: number) => void;
    readonly applyTerminalDirectFormulaNumericResults: (cellIndices: readonly number[] | Uint32Array, values: ArrayLike<number>, count?: number) => void;
    readonly applyTerminalDirectFormulaAffineNumericResults: (cellIndices: readonly number[] | Uint32Array, values: ArrayLike<number>, scale: number, offset: number, count?: number) => void;
    readonly applyTerminalDirectFormulaAffineNumericResultsFromRefs: (cellIndices: readonly number[] | Uint32Array, refs: readonly EngineCellMutationRef[], scale: number, offset: number, count?: number) => void;
    readonly writeNumericLiteralToCellStore: (cellIndex: number, value: number) => void;
    readonly evaluateDirectScalarCurrentValue: (directScalar: RuntimeDirectScalarDescriptor) => DirectScalarCurrentOperand | undefined;
    readonly applyDirectScalarCurrentValue: (cellIndex: number, directScalar: RuntimeDirectScalarDescriptor) => boolean;
    readonly tryEvaluateDirectScalarWithPendingNumbers: (directScalar: RuntimeDirectScalarDescriptor, pendingNumbers: PendingNumericCellValues) => DirectScalarCurrentOperand | undefined;
    readonly tryEvaluateDirectScalarNumericWithPendingNumbers: (directScalar: RuntimeDirectScalarDescriptor, pendingNumbers: PendingNumericCellValues) => number | undefined;
};
