import type { EngineRuntimeState, RuntimeDirectLookupDescriptor, U32 } from '../runtime-state.js';
export declare const MIN_INITIAL_NATIVE_DIRECT_LOOKUP_BATCH_SIZE = 256;
export declare const MAX_INITIAL_NATIVE_DIRECT_LOOKUP_BATCH_SIZE = 65536;
export declare const MIN_RECALC_NATIVE_DIRECT_LOOKUP_BATCH_SIZE = 64;
export declare const MAX_RECALC_NATIVE_DIRECT_LOOKUP_BATCH_SIZE = 4096;
interface InitialNativeDirectLookupBatchState {
    readonly workbook: EngineRuntimeState['workbook'];
    readonly wasm: EngineRuntimeState['wasm'];
    readonly counters: EngineRuntimeState['counters'];
}
export interface NativeDirectLookupBatch {
    readonly count: number;
    readonly add: (prepared: {
        readonly cellIndex: number;
        readonly sheetId: number;
        readonly col: number;
    }, directLookup: RuntimeDirectLookupDescriptor) => boolean;
    readonly evaluate: () => U32 | undefined;
    readonly reset: () => void;
}
export declare function createInitialNativeDirectLookupBatch(args: {
    readonly state: InitialNativeDirectLookupBatchState;
    readonly capacity: number;
}): NativeDirectLookupBatch;
export declare function createRecalcNativeDirectLookupBatch(args: {
    readonly state: InitialNativeDirectLookupBatchState;
    readonly capacity: number;
    readonly onCellValueChanged?: (cellIndex: number) => void;
}): NativeDirectLookupBatch;
export {};
