import { type RecalcMetrics } from '@bilig/protocol';
import type { EngineExistingNumericCellMutationRef, EngineExistingNumericCellMutationResult, EngineExistingNumericCellMutationsRef } from '../../cell-mutations-at.js';
import type { EngineEventBus } from '../../events.js';
import type { FormulaTable } from '../../formula-table.js';
import { type EngineCounters } from '../../perf/engine-counters.js';
import type { WorkbookStore } from '../../workbook-store.js';
import type { RuntimeFormula } from '../runtime-state.js';
import type { EngineTraversalService } from './traversal-service.js';
interface TrackedColumnDependencyState {
    readonly size: number;
}
export interface TrustedExistingNumericDirectScalarFastPath {
    readonly tryApply: (request: EngineExistingNumericCellMutationRef, oldNumericValue: number) => EngineExistingNumericCellMutationResult | null;
    readonly tryApplyBatch: (request: EngineExistingNumericCellMutationsRef) => Float64Array | null;
}
export declare function createTrustedExistingNumericDirectScalarFastPath(args: {
    readonly workbook: WorkbookStore;
    readonly formulas: FormulaTable<RuntimeFormula>;
    readonly events: EngineEventBus;
    readonly counters: EngineCounters;
    readonly traversal: Pick<EngineTraversalService, 'getSingleEntityDependentNow' | 'getEntityDependentsNow' | 'copySmallEntityDependentsNow' | 'getSingleCellDependentNow'>;
    readonly directScalarDeltaOutputCellIndicesByInput?: ArrayLike<number | undefined>;
    readonly deferKernelSync: (cellIndices: readonly number[] | Uint32Array) => void;
    readonly hasVolatileFormulas: () => boolean;
    readonly hasRegionFormulaSubscriptions: () => boolean;
    readonly reverseExactLookupColumnEdges: TrackedColumnDependencyState;
    readonly reverseSortedLookupColumnEdges: TrackedColumnDependencyState;
    readonly reverseAggregateColumnEdges: TrackedColumnDependencyState;
    readonly getLastMetrics: () => RecalcMetrics;
    readonly setLastMetrics: (metrics: RecalcMetrics) => void;
}): TrustedExistingNumericDirectScalarFastPath;
export {};
