export declare type KeyFunc<T> = (t: T) => number | string;
export declare type KeyMap<T> = {
    [key: string]: {
        index: number;
        item: T;
    };
};
export declare type Addition<T> = {
    index: number;
    item: T;
};
export declare type Deletion<T> = {
    index: number;
    item: T;
};
export declare type Move<T> = {
    oldIndex: number;
    newIndex: number;
    item: T;
};
export declare type ListChanges<T> = {
    additions: Addition<T>[];
    deletions: Deletion<T>[];
    moves: Move<T>[];
};
