import type { EngineChangedCell } from '@bilig/protocol';
import { type EngineCounters } from '../perf/engine-counters.js';
import type { StringPool } from '../string-pool.js';
import type { WorkbookStore } from '../workbook-store.js';
import type { EnginePatch, EngineRangeInvalidationPatch } from './patch-types.js';
export interface MaterializeChangedCellsArgs {
    readonly workbook: WorkbookStore;
    readonly strings: StringPool;
    readonly counters?: EngineCounters;
}
export interface EnginePatchCaptureRequest {
    readonly changedCellIndices: readonly number[] | Uint32Array;
    readonly invalidation?: 'cells' | 'full';
    readonly invalidatedRanges?: readonly EngineRangeInvalidationPatch['range'][];
    readonly invalidatedRows?: ReadonlyArray<{
        readonly sheetName: string;
        readonly startIndex: number;
        readonly endIndex: number;
    }>;
    readonly invalidatedColumns?: ReadonlyArray<{
        readonly sheetName: string;
        readonly startIndex: number;
        readonly endIndex: number;
    }>;
}
export declare function materializeEnginePatches(args: MaterializeChangedCellsArgs, request: EnginePatchCaptureRequest): readonly EnginePatch[];
export declare function materializeChangedCells(args: MaterializeChangedCellsArgs, changedCellIndices: readonly number[] | Uint32Array): readonly EngineChangedCell[];
