import { EntityNode } from './entity-node'; export interface IRepository { state: string; load: (data: EntityNode[]) => void; extract: () => EntityNode[]; find: (key: string) => T; filter: (filter: (item: T) => boolean) => T[]; add: (key: string, item: T) => void; addRange: (items: { key: string; value: T; }[]) => void; update: (key: string, action: (item: T) => T) => void; delete: (key: string) => void; markCurrent: () => void; } export declare class Repository implements IRepository { get state(): string; protected _state: string; protected data: { [key: string]: T; }; load: (data: EntityNode[]) => void; extract: () => EntityNode[]; find: (key: string) => T; filter: (filter: (item: T) => boolean) => T[]; add: (key: string, item: T) => void; addRange: (items: { key: string; value: T; }[]) => void; update: (key: string, action: (item: T) => T) => void; upsert: (key: string, item: T) => void; delete: (key: string) => void; markCurrent: () => void; }