import { IBatchArray } from 'etali';
export declare enum PatchType {
    add = 0,
    rm = 1
}
export default class Patch<T> {
    added: [number, T][];
    rmed: [number, T][];
    constructor(added?: [number, T][], rmed?: [number, T][]);
    get empty(): boolean;
    reset(): void;
    transform(array: T[] | IBatchArray<T>): void;
    rmThenAddOrder(): Generator<[PatchType, [number, T]], void, unknown>;
    addThenRmOrder(): Generator<[PatchType, [number, T]], void, unknown>;
}
export declare function mergePatches<T>(patch0: Patch<T>, patch1: Patch<T>): Patch<T>;
