import { type CellValue } from '@bilig/protocol';
import type { EngineRuntimeState, RuntimeDirectCriteriaDescriptor } from '../runtime-state.js';
import type { CriterionRangeDescriptor, CriterionRangeMatch, CriterionRangePair } from './criterion-range-cache-service.js';
import type { EngineRuntimeColumnStoreService } from './runtime-column-store-service.js';
export interface NativeDirectCriteriaPredicateLayout {
    readonly rowCount: number;
    readonly hasStringCriteria: boolean;
    readonly criteriaOps: Uint8Array;
    readonly criteriaKinds: Uint8Array;
    readonly criteriaValues: Float64Array;
    readonly criteriaStringIds: Uint32Array;
    readonly criteriaTags: Uint8Array;
    readonly criteriaNumbers: Float64Array;
    readonly criteriaStringIdsByRow: Uint32Array;
}
export type NativeDirectCriteriaPredicateLayoutCache = Map<string, NativeDirectCriteriaPredicateLayout>;
export declare function tryEvaluateNativeDirectCriteriaPredicateAggregate(args: {
    readonly state: Pick<EngineRuntimeState, 'wasm' | 'counters'>;
    readonly runtimeColumnStore: EngineRuntimeColumnStoreService;
}, input: {
    readonly aggregateKind: RuntimeDirectCriteriaDescriptor['aggregateKind'];
    readonly aggregateRange: CriterionRangeDescriptor | undefined;
    readonly criteriaPairs: readonly CriterionRangePair[];
    readonly criteriaLayoutCache?: NativeDirectCriteriaPredicateLayoutCache;
    readonly criteriaLayoutCacheKey?: string;
    readonly shouldUseSharedCriteriaCache?: () => boolean;
}): CellValue | undefined;
export declare function tryEvaluateNativeDirectCriteriaMatchedAggregate(args: {
    readonly state: Pick<EngineRuntimeState, 'wasm' | 'counters'>;
    readonly runtimeColumnStore: EngineRuntimeColumnStoreService;
}, input: {
    readonly aggregateKind: RuntimeDirectCriteriaDescriptor['aggregateKind'];
    readonly aggregateRange: CriterionRangeDescriptor;
    readonly matches: CriterionRangeMatch;
}): CellValue | undefined;
