import type { EngineOpBatch } from '@bilig/workbook';
import type { EngineEvent, LiteralInput } from '@bilig/protocol';
import type { SheetRecord } from '../../workbook-store.js';
import type { EngineRuntimeState, U32 } from '../runtime-state.js';
export declare function createOperationServiceRuntimeHelpers(args: {
    readonly state: Pick<EngineRuntimeState, 'batchListeners' | 'getLastMetrics' | 'workbook' | 'strings' | 'formulas'>;
    readonly deferKernelSync: (cellIndices: readonly number[] | U32) => void;
}): {
    readonly emitBatch: (batch: EngineOpBatch) => void;
    readonly deferSingleCellKernelSync: (cellIndex: number) => void;
    readonly makeSingleLiteralSkipMetrics: () => EngineEvent['metrics'];
    readonly writeNumericLiteralToExistingCell: (cellIndex: number, value: number) => void;
    readonly writeTrustedExistingNumericLiteralToCell: (cellIndex: number, sheet: SheetRecord, col: number, value: number) => void;
    readonly writeFastPathLiteralToExistingCell: (cellIndex: number, value: LiteralInput) => void;
    readonly cellsShareVersionColumn: (leftCellIndex: number, rightCellIndex: number) => boolean;
    readonly withOptionalColumnVersionBatch: (shouldBatch: boolean, execute: () => void) => void;
    readonly canFastPathLiteralOverwrite: (cellIndex: number) => boolean;
    readonly isNullLiteralWriteNoOp: (cellIndex: number) => boolean;
    readonly isClearCellNoOp: (cellIndex: number) => boolean;
};
