import { OperatorFunction } from 'rxjs'; import { BaseEntityOptions, DefaultEntitiesRef, EntitiesRecord, EntitiesRef, EntitiesState, getEntityType, getIdType, ItemPredicate } from './entity.state'; interface Options extends BaseEntityOptions { pluck?: string | ((entity: unknown) => any); } /** * Observe an entity * * @example * * store.pipe(selectEntity(id, { pluck: 'title' }) * * store.pipe(selectEntity(id, { ref: UIEntitiesRef }) * */ export declare function selectEntity, K extends keyof getEntityType, Ref extends EntitiesRef = DefaultEntitiesRef>(id: getIdType, options: { pluck: K; } & BaseEntityOptions): OperatorFunction[K] | undefined>; /** * Observe an entity * * @example * * store.pipe(selectEntity(id, { pluck: e => e.title }) * * store.pipe(selectEntity(id, { ref: UIEntitiesRef }) * */ export declare function selectEntity, R, Ref extends EntitiesRef = DefaultEntitiesRef>(id: getIdType, options: { pluck: (entity: getEntityType) => R; } & BaseEntityOptions): OperatorFunction; /** * * Observe an entity * * @example * * store.pipe(selectEntity(id)) * * store.pipe(selectEntity(id, { ref: UIEntitiesRef }) * */ export declare function selectEntity, Ref extends EntitiesRef = DefaultEntitiesRef>(id: getIdType, options?: BaseEntityOptions): OperatorFunction | undefined>; export declare function getEntity(entities: EntitiesRecord, id: string | number, pluck: Options['pluck']): any; /** * Observe an entity * * @example * * store.pipe(selectEntityByPredicate(entity => entity.title, { pluck: entity => entity.title }) * */ export declare function selectEntityByPredicate, Ref extends EntitiesRef = DefaultEntitiesRef, EntityType = getEntityType>(predicate: ItemPredicate>, options: { pluck: (entity: EntityType) => R; } & BaseEntityOptions & IdKey): OperatorFunction; /** * * Observe an entity * * @example * * store.pipe(selectEntityByPredicate(entity => entity.title, { pluck: 'title' }) * */ export declare function selectEntityByPredicate, S extends EntitiesState, Ref extends EntitiesRef = DefaultEntitiesRef>(predicate: ItemPredicate>, options: { pluck: K; } & BaseEntityOptions & IdKey): OperatorFunction[K] | undefined>; /** * * Observe an entity * * @example * * store.pipe(selectEntityByPredicate(entity => entity.title, { ref: UIEntitiesRef }) * */ export declare function selectEntityByPredicate, Ref extends EntitiesRef = DefaultEntitiesRef>(predicate: ItemPredicate>, options?: BaseEntityOptions & IdKey): OperatorFunction | undefined>; interface IdKey { idKey?: string; } export {};