import { type CellValue } from '@bilig/protocol';
import type { InitialFormulaCellIndexList } from './formula-initialization-refs.js';
import type { EngineFormulaInitializationServiceArgs } from './formula-initialization-service-types.js';
export type InitialPrefixAggregateKind = 'sum' | 'count' | 'average' | 'min' | 'max';
export interface InitialPrefixAggregateGroup {
    readonly sheetName: string;
    readonly col: number;
    readonly colEnd: number;
    readonly aggregateKind: InitialPrefixAggregateKind;
    maxRowEnd: number;
    lastRowEnd: number;
    formulasAreOrdered: boolean;
    readonly formulas: Array<{
        cellIndex: number;
        rowEnd: number;
        resultOffset?: number;
    }>;
}
type InitialPrefixAggregateArgs = Pick<EngineFormulaInitializationServiceArgs, 'state' | 'checkEvaluationBudget'>;
export declare function canEvaluateInitialPrefixAggregateGroupsNatively(args: InitialPrefixAggregateArgs, orderedCellIndices: InitialFormulaCellIndexList, options?: {
    readonly requireAllCells?: boolean;
}): boolean;
export declare function evaluateInitialPrefixAggregateGroups(args: InitialPrefixAggregateArgs, orderedCellIndices: InitialFormulaCellIndexList, pushChangedCellIndex: (cellIndex: number) => void, writeFormulaValue: (cellIndex: number, value: CellValue) => void): Set<number> | undefined;
export {};
