import { RegistryType } from '../Constants'; import { TDestroyable, TNoSpread, TWithId } from '../../Mixins'; import { Observable } from 'rxjs'; import { TRegistryPack } from './TRegistryPack'; import { TWithBaseAccessorsRegistry } from './TWithBaseAccessorsRegistry'; import { TWithReactiveRegistry } from './TWithReactiveRegistry'; export type TAbstractSimpleRegistry = TWithBaseAccessorsRegistry & Omit, 'added$' | 'replaced$' | 'removed$'> & Readonly<{ add: (key: string, value: T) => void; added$: Observable>; asArray: () => ReadonlyArray; asObject: () => Record; findByKey: (key: string) => T | undefined; findKeyByValue: (value: T) => string | undefined; getByKey: (key: string) => T | never; getKeyByValue: (value: T) => string | never; getRegistryCopy: () => Map; remove: (key: string) => void; removed$: Observable>; replace: (key: string, value: T) => void; replaced$: Observable>; type: RegistryType | string; }> & TWithId & TDestroyable & TNoSpread;