import { IEventT } from '../../events/interfaces/iEvent'; import { IItemsChangedEventArgs } from './iItemsChangedEventArgs'; import { IKeyValue } from './iKeyValue'; export interface IObservableDictionary { readonly keys: TKey[]; readonly values: TValue[]; readonly keysAndValues: IKeyValue[]; readonly size: number; readonly itemsChanged: IEventT>>; add(key: TKey, value: TValue): void; remove(key: TKey): void; findKey(predicate: (key: TKey) => boolean): TKey; containsKey(key: TKey): any; containsValue(value: TValue): any; getValueByKey(key: TKey): TValue; clear(): void; }