import type { EngineOp } from '@bilig/workbook';
import { type EngineCellMutationAt, type EngineCellMutationRef, type EngineExistingLiteralCellMutationRef, type EngineExistingNumericCellMutationRef } from '../../cell-mutations-at.js';
import type { WorkbookStore } from '../../workbook-store.js';
import type { PreparedCellAddress, TransactionRecord } from '../runtime-state.js';
type OpsTransactionRecord = Extract<TransactionRecord, {
    kind: 'ops';
}>;
type ExistingNumericCellMutationsTransactionRecord = Extract<TransactionRecord, {
    kind: 'existing-numeric-cell-mutations';
}>;
export declare function createOpsTransactionRecord(ops: EngineOp[], potentialNewCells?: number, preparedCellAddressesByOpIndex?: readonly (PreparedCellAddress | null)[]): OpsTransactionRecord;
export declare function createLazySingleOpTransactionRecord(op: EngineOp, potentialNewCells?: number): TransactionRecord;
export declare function createLazyCellMutationTransactionRecord(refs: readonly EngineCellMutationRef[], potentialNewCells?: number): TransactionRecord;
export declare function createSingleExistingNumericCellMutationTransactionRecord(request: EngineExistingNumericCellMutationRef, potentialNewCells: number): TransactionRecord;
export declare function singleExistingNumericCellMutationRecordToRef(record: Extract<TransactionRecord, {
    kind: 'single-existing-numeric-cell-mutation';
}>): EngineCellMutationRef;
export declare function createSingleExistingLiteralCellMutationTransactionRecord(request: EngineExistingLiteralCellMutationRef, potentialNewCells: number): TransactionRecord;
export declare function createExistingNumericCellMutationsTransactionRecord(captured: {
    readonly sheetIds: Uint32Array;
    readonly cellIndexPlusOnes: Uint32Array;
    readonly rows: Uint32Array;
    readonly cols: Uint32Array;
    readonly numbers: Float64Array;
}, potentialNewCells: number): ExistingNumericCellMutationsTransactionRecord;
export declare function createLazyReversedExistingNumericCellMutationsTransactionRecord(captured: {
    readonly sheetIds: Uint32Array;
    readonly cellIndexPlusOnes: Uint32Array;
    readonly rows: Uint32Array;
    readonly cols: Uint32Array;
}, numbers: Float64Array, potentialNewCells: number): ExistingNumericCellMutationsTransactionRecord;
export declare function existingNumericCellMutationsRecordToRefs(record: Extract<TransactionRecord, {
    kind: 'existing-numeric-cell-mutations';
}>): EngineCellMutationRef[];
export declare function singleExistingLiteralCellMutationRecordToRef(record: Extract<TransactionRecord, {
    kind: 'single-existing-literal-cell-mutation';
}>): EngineCellMutationRef;
export declare function createLazyMaterializedCellMutationTransactionRecord(materializeRefs: () => EngineCellMutationRef[], potentialNewCells?: number): TransactionRecord;
export interface RenderCommitCellMutation {
    readonly sheetName: string;
    readonly mutation: EngineCellMutationAt;
}
export declare function renderCommitCellMutationToEngineOp(entry: RenderCommitCellMutation): EngineOp;
export declare function createLazyRenderCommitTransactionRecord(prefixOps: readonly EngineOp[], cellMutations: readonly RenderCommitCellMutation[], potentialNewCells?: number): TransactionRecord;
export declare function transactionRecordOps(workbook: WorkbookStore, record: TransactionRecord): readonly EngineOp[];
export declare function cloneTransactionRecordOps(workbook: WorkbookStore, record: TransactionRecord): EngineOp[];
export {};
