import { type CellValue } from '@bilig/protocol';
import type { EngineRuntimeState, SpillMaterialization } from '../runtime-state.js';
import type { CriterionRangeCacheService } from './criterion-range-cache-service.js';
import type { ExactColumnIndexService } from './exact-column-index-service.js';
import type { EngineRuntimeColumnStoreService } from './runtime-column-store-service.js';
import type { RangeAggregateCacheService } from './range-aggregate-cache-service.js';
import type { SortedColumnSearchService } from './sorted-column-search-service.js';
import type { EngineFormulaEvaluationService } from './formula-evaluation-service-types.js';
export type { EngineFormulaEvaluationService } from './formula-evaluation-service-types.js';
export declare function createEngineFormulaEvaluationService(args: {
    readonly state: Pick<EngineRuntimeState, 'workbook' | 'strings' | 'formulas' | 'counters' | 'wasm' | 'getUseColumnIndex'>;
    readonly runtimeColumnStore: EngineRuntimeColumnStoreService;
    readonly criterionCache: CriterionRangeCacheService;
    readonly aggregateCache: RangeAggregateCacheService;
    readonly exactLookup: Pick<ExactColumnIndexService, 'findVectorMatch' | 'prepareVectorLookup' | 'findPreparedVectorMatch'>;
    readonly sortedLookup: Pick<SortedColumnSearchService, 'findVectorMatch' | 'prepareVectorLookup' | 'findPreparedVectorMatch'>;
    readonly materializeSpill: (cellIndex: number, arrayValue: {
        values: CellValue[];
        rows: number;
        cols: number;
    }) => SpillMaterialization;
    readonly clearOwnedSpill: (cellIndex: number) => number[];
    readonly checkEvaluationBudget: (stepCost?: number) => void;
    readonly resolvePivotData: (sheetName: string, address: string, dataField: string, filters: ReadonlyArray<{
        field: string;
        item: CellValue;
    }>) => CellValue;
}): EngineFormulaEvaluationService;
