import { ILoadResult, IRepository } from "@sankhyalabs/core";
export declare class ArrayRepository<T> implements IRepository<T> {
  private _list;
  private _listCopy;
  private _listLastUpdate;
  private _listCopyLastUpdate;
  private _equalsFunction;
  constructor(equalsFunction: (itemA: T, itemB: T) => boolean);
  load(filterFunction?: (value: T) => boolean, sortingFunction?: (itemA: T, itemB: T) => number, offset?: number, limit?: number): Promise<ILoadResult<T>>;
  distict(itemProcessor: (item: T) => {
    key: string;
    value: any;
  }): Promise<Map<string, any>>;
  push(items: Array<T>): Promise<void>;
  clear(): Promise<void>;
  delete(items: Array<T>): Promise<void>;
  update(items: Array<T>): Promise<void>;
  insert(itemReference: T, items: Array<T>): Promise<void>;
  isOperating(): boolean;
  isEmpty(): Promise<boolean>;
  count(): Promise<number>;
  getFromCache(): Array<T>;
  private updateList;
}
