import { ISourceCache } from './ISourceCache'; import { ISourceUpdater } from './ISourceUpdater'; import { Observable } from 'rxjs'; import { Change } from './Change'; import { IChangeSet } from './IChangeSet'; /** * An observable cache which exposes an update API. Used at the root * of all observable chains * @typeparam TObject The type of the object * @typeparam TKey The type of the key */ export declare class SourceCache implements ISourceCache { private readonly _innerCache; /** * Initializes a new instance of the class. * @param keySelector The key selector. * @param deepEqual Use deep equal comparisons */ constructor(keySelector: (value: TObject) => TKey, deepEqual?: boolean); [Symbol.toStringTag]: 'ObservableCache'; edit(updateAction: (updater: ISourceUpdater) => void): void; watch(key: TKey): Observable>; connect(predicate?: ((object: TObject) => boolean) | undefined): Observable>; preview(predicate?: ((object: TObject) => boolean) | undefined): Observable>; get countChanged(): Observable; keys(): IterableIterator; values(): IterableIterator; entries(): IterableIterator<[TKey, TObject]>; lookup(key: TKey): TObject | undefined; get size(): number; [Symbol.iterator](): IterableIterator<[TKey, TObject]>; dispose(): void; getKey(item: TObject): NonNullable; } export declare function updateable(sourceCache: ISourceCache): ISourceCache & ISourceUpdater;