import type { EngineChangedCell } from '@bilig/protocol';
import type { EngineOpBatch } from '@bilig/workbook';
import type { EngineCellMutationRef } from '../../cell-mutations-at.js';
import type { EngineRuntimeState, U32 } from '../runtime-state.js';
type FastPathState = Pick<EngineRuntimeState, 'workbook' | 'ranges' | 'events' | 'formulas' | 'counters' | 'replicaState' | 'getLastMetrics' | 'setLastMetrics' | 'getSyncClientConnection'>;
export interface OperationFreshRectangularLiteralBatchFastPathArgs {
    readonly state: FastPathState;
    readonly emitBatch: (batch: EngineOpBatch) => void;
    readonly hasTrackedExactLookupDependents: (sheetId: number, col: number) => boolean;
    readonly hasTrackedSortedLookupDependents: (sheetId: number, col: number) => boolean;
    readonly writeNumericLiteralToCellStore: (cellIndex: number, value: number) => void;
    readonly materializeDeferredStructuralFormulaSources: () => void;
    readonly beginMutationCollection: () => void;
    readonly ensureRecalcScratchCapacity: (size: number) => void;
    readonly resetMaterializedCellScratch: (expectedSize: number) => void;
    readonly getBatchMutationDepth: () => number;
    readonly setBatchMutationDepth: (next: number) => void;
    readonly markInputChanged: (cellIndex: number, count: number) => number;
    readonly markExplicitChanged: (cellIndex: number, count: number) => number;
    readonly getChangedInputBuffer: () => U32;
    readonly deferKernelSync: (cellIndices: readonly number[] | U32) => void;
    readonly captureChangedCells: (changedCellIndices: readonly number[] | U32) => readonly EngineChangedCell[];
}
export declare function createOperationFreshRectangularLiteralBatchFastPath(args: OperationFreshRectangularLiteralBatchFastPathArgs): {
    readonly tryApplyFreshDenseRectangularNumericLiteralBatch: (refs: readonly EngineCellMutationRef[], batch: EngineOpBatch | null, potentialNewCells?: number) => boolean;
};
export {};
