export declare class LazyArray<TItem> implements PromiseLike<TItem[]> {
    private readonly items;
    constructor(items: TItem[] | PromiseLike<TItem[]>);
    then<TResult1 = TItem[], TResult2 = never>(onfulfilled?: ((value: TItem[]) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;
    map<TNew>(selector: (item: TItem) => TNew): LazyArray<TNew>;
    unique(): LazyArray<TItem>;
    uniqueBy<TCompare>(compareBy: (item: TItem) => TCompare): LazyArray<TItem>;
}
export declare const filterDuplicates: <TItem, TCompare>(items: TItem[], compareBy: (item: TItem) => TCompare) => TItem[];
