export type Constructor = new (...args: any[]) => T; export interface IListCachePredicate { (item: T): boolean; } export interface IListCacheItemUpdater { (item: T): T; } export interface IListCache { count(): number; clear(): void; hasItems(): boolean; getItems(): T[]; getItem(predicate: IListCachePredicate): T | undefined; addItems(items: T[]): void; updateItems(updater: IListCacheItemUpdater): void; removeItems(predicate: IListCachePredicate): void; } export declare class ListCache implements IListCache { private state; constructor(); count(): number; clear(): void; hasItems(): boolean; getItems(): T[]; getItem(predicate: IListCachePredicate): T | undefined; addItems(items: T[]): void; updateItems(updater: IListCacheItemUpdater): void; removeItems(predicate: IListCachePredicate): void; }