import type { EngineCellMutationAt } from '../../cell-mutations-at.js';
import type { DirectFormulaIndexCollection, DirectScalarCurrentOperand } from './direct-formula-index-collection.js';
import type { RuntimeFormula } from '../runtime-state.js';
import type { CreateEngineOperationServiceArgs } from './operation-service-types.js';
export interface FreshDirectAggregateFormulaAnalysis {
    readonly canSkipTopoRepair: boolean;
    readonly currentResult?: DirectScalarCurrentOperand;
}
export declare function analyzeFreshDirectAggregateFormula(args: CreateEngineOperationServiceArgs, input: {
    readonly priorHadFormula: boolean;
    readonly formulaCellIndex: number;
    readonly formula: RuntimeFormula | undefined;
}): FreshDirectAggregateFormulaAnalysis;
export declare function canSkipTopoRepairForFreshDirectAggregate(args: CreateEngineOperationServiceArgs, input: {
    readonly priorHadFormula: boolean;
    readonly formulaCellIndex: number;
    readonly formula: RuntimeFormula | undefined;
}): boolean;
export declare function tryEvaluateFreshDirectAggregateCurrentResult(args: CreateEngineOperationServiceArgs, formula: RuntimeFormula | undefined): DirectScalarCurrentOperand | undefined;
export declare function markFreshDirectAggregateInputsCovered(args: CreateEngineOperationServiceArgs, input: {
    readonly formulaCellIndex: number;
    readonly formula: RuntimeFormula | undefined;
    readonly postRecalcDirectFormulaIndices: DirectFormulaIndexCollection;
}): void;
export declare function bindFreshTemplateFormula(args: CreateEngineOperationServiceArgs, cellIndex: number, sheetName: string, mutation: Extract<EngineCellMutationAt, {
    kind: 'setCellFormula';
}>): boolean;
