declare global { export interface SELECTOR_META { flatKey?: string; gqlFields?: Array | Record; } } export declare type UNKNOWN = any; export interface STORE_SELECTOR { (state: T): V; idsKey?: keyof any; entitiesKey?: keyof any; originalSelector?: (state: T) => V; } export declare type ID_SELECTOR = (entity: E) => ID_TYPES; export interface ACTION { type: string; } export declare type FILTER_PROPS = { [Key in keyof Base]: Base[Key] extends Condition ? Key : never; }[keyof Base]; export declare type ENTITY_STATE_CUSTOM = { [key in EK]: { [id in ID_TYPES]?: ENTITY | undefined; }; } & { [key in IK]?: Array; }; export interface ENTITY_STATE { ids?: Array; entities: { [id in ID_TYPES]?: E; }; } export declare type FEATURE_SELECTOR = STORE_SELECTOR> | { collection: STORE_SELECTOR>; id: string | number; } | { collection: STORE_SELECTOR>; id: ID_SELECTOR; } | { selectors: { selectCollection: STORE_SELECTOR>; }; selectId?: ID_SELECTOR; }; export declare type CACHE_CHECKS = Map; export declare type CACHE_CHECKS_SET = Map>, CACHE_CHECKS>; export declare type CACHE = Map, UNKNOWN]>>; export interface ENTITY_SELECTOR { ngrxEntityRelationship: string; meta: SELECTOR_META; collectionSelector: STORE_SELECTOR>; idSelector: ID_SELECTOR; relationships: Array>; } export declare type HANDLER_ENTITY = HANDLER_ROOT_ENTITY; export declare type HANDLER_ENTITIES = HANDLER_ROOT_ENTITIES; export declare type HANDLER_ROOT_ENTITY = ENTITY_SELECTOR & { (state: S, id: undefined | null | I | STORE_SELECTOR): undefined | T; release(): void; }; export declare type HANDLER_ROOT_ENTITIES = ENTITY_SELECTOR & { (state: S, id: undefined | null | Array | STORE_SELECTOR>): Array; release(): void; }; export declare type HANDLER_RELATED_ENTITY = ENTITY_SELECTOR & { (cachePrefix: string, state: S, cacheRefs: CACHE, source: E, sourceIdSelector: ID_SELECTOR): string | undefined; keyId: keyof any; keyValue: keyof any; release(): void; }; export declare type EMPTY_TYPES = undefined | null; export declare type ID_TYPES = string | number; export declare type ID_FILTER_PROPS = NonNullable>; export declare type VALUES_FILTER_PROPS = NonNullable>; export declare type TRANSFORMER = (entity: F) => T; export declare function isBuiltInSelector(value: UNKNOWN): value is HANDLER_RELATED_ENTITY; export declare function isSelectorMeta(value: UNKNOWN): value is SELECTOR_META;