import type { CellRangeRef, CellValue } from '@bilig/protocol';
export declare const ENGINE_CELL_PATCH_KIND: "cell";
export declare const ENGINE_RANGE_INVALIDATION_PATCH_KIND: "range-invalidation";
export declare const ENGINE_ROW_INVALIDATION_PATCH_KIND: "row-invalidation";
export declare const ENGINE_COLUMN_INVALIDATION_PATCH_KIND: "column-invalidation";
export interface EngineCellPatch {
    readonly kind: typeof ENGINE_CELL_PATCH_KIND;
    readonly cellIndex: number;
    readonly address: {
        readonly sheet: number;
        readonly row: number;
        readonly col: number;
    };
    readonly sheetName: string;
    readonly a1: string;
    readonly newValue: CellValue;
}
export interface EngineRangeInvalidationPatch {
    readonly kind: typeof ENGINE_RANGE_INVALIDATION_PATCH_KIND;
    readonly range: CellRangeRef;
}
export interface EngineRowInvalidationPatch {
    readonly kind: typeof ENGINE_ROW_INVALIDATION_PATCH_KIND;
    readonly sheetName: string;
    readonly startIndex: number;
    readonly endIndex: number;
}
export interface EngineColumnInvalidationPatch {
    readonly kind: typeof ENGINE_COLUMN_INVALIDATION_PATCH_KIND;
    readonly sheetName: string;
    readonly startIndex: number;
    readonly endIndex: number;
}
export type EnginePatch = EngineCellPatch | EngineRangeInvalidationPatch | EngineRowInvalidationPatch | EngineColumnInvalidationPatch;
export declare function isEngineCellPatch(value: unknown): value is EngineCellPatch;
export declare function isEngineRangeInvalidationPatch(value: unknown): value is EngineRangeInvalidationPatch;
export declare function isEngineRowInvalidationPatch(value: unknown): value is EngineRowInvalidationPatch;
export declare function isEngineColumnInvalidationPatch(value: unknown): value is EngineColumnInvalidationPatch;
