import * as Storage from "./components/storage/implementation"; export declare type RepositoryOptions = { storage: Storage.Implementation; storageName: string; }; export default abstract class Repository { dictionary: Record; memoryCache: T[]; storage: Storage.Implementation; storageName: string; constructor({ storage, storageName }: RepositoryOptions); static create(options: RepositoryOptions): Promise; add(itemOrItems: T | T[]): Promise; clear(): Promise; find(predicate: (value: T, index: number) => boolean): T | null; getByIndex(idx: number): T | null; getAll(): Promise; indexOf(item: T): number; length(): number; fromJSON(a: string): T; toJSON(a: T): string; getByKey(key: string): T | null; toDictionary(items: T[]): Record; }