import { type CellValue, type RecalcMetrics } from '@bilig/protocol';
import type { EngineExistingNumericCellMutationResult } from '../../cell-mutations-at.js';
import type { U32 } from '../runtime-state.js';
import type { SheetRecord } from '../../workbook-store.js';
import { DirectFormulaIndexCollection } from './direct-formula-index-collection.js';
import type { CreateEngineOperationServiceArgs } from './operation-service-types.js';
export interface OperationTrustedDirectScalarClosureExistingNumericMutationRequest {
    readonly existingIndex: number;
    readonly sheet: SheetRecord;
    readonly sheetId: number;
    readonly col: number;
    readonly value: number;
    readonly oldNumber: number;
    readonly hasTrackedEventListeners: boolean;
}
export interface OperationDirectScalarClosureFastPathArgs {
    readonly state: Pick<CreateEngineOperationServiceArgs['state'], 'workbook' | 'formulas' | 'counters' | 'events' | 'setLastMetrics'>;
    readonly tryMarkDirectScalarLinearDeltaClosure: (rootCellIndex: number, oldValue: CellValue, newValue: CellValue, postRecalcDirectFormulaIndices: DirectFormulaIndexCollection) => boolean;
    readonly writeTrustedExistingNumericLiteralToCell: (existingIndex: number, sheet: SheetRecord, col: number, value: number) => void;
    readonly tryApplyDirectScalarDeltas: (collection: DirectFormulaIndexCollection, captureChanged?: boolean) => U32 | undefined;
    readonly deferSingleCellKernelSync: (cellIndex: number) => void;
    readonly makeSingleLiteralSkipMetrics: () => RecalcMetrics;
}
export declare function tryApplyTrustedDirectScalarClosureExistingNumericMutation(args: OperationDirectScalarClosureFastPathArgs, request: OperationTrustedDirectScalarClosureExistingNumericMutationRequest): EngineExistingNumericCellMutationResult | null;
