import { ReducerContext } from '@ngneat/elf'; export declare function getIdKey(context: ReducerContext, ref: EntitiesRef): T; export type getEntityType, Ref extends EntitiesRef> = S[Ref['entitiesKey']][getIdType]; export type getIdType, Ref extends EntitiesRef> = S[Ref['idsKey']][0]; export type ItemPredicate = (item: Item, index?: number) => boolean; export type EntitiesRecord = Record; export type DefaultEntitiesRef = typeof defaultEntitiesRef; type ValueOf = T[keyof T]; type EntitiesKeys = { [key in keyof T]: key extends 'entitiesKey' ? T[key] : key extends 'idsKey' ? T[key] : never; }; export type EntitiesState = { [k in ValueOf>]: any; } & { [key: string]: any; }; export interface BaseEntityOptions { ref?: Ref; } export declare class EntitiesRef { entitiesKey: EntitiesKey; idsKey: IdsKey; idKeyRef: string; constructor(config: { entitiesKey: EntitiesKey; idsKey: IdsKey; idKeyRef: IdKey; }); } export declare function entitiesPropsFactory}`, EntitiesKey extends string = Feature extends '' ? `entities` : `${Feature}Entities`, IdsKey extends string = Feature extends '' ? `ids` : `${Feature}Ids`>(feature: Feature): { [K in `${Feature}EntitiesRef` | `with${Capitalize}Entities`]: K extends `${Feature}EntitiesRef` ? EntitiesRef : K extends `with${Capitalize}Entities` ? (config?: { initialValue?: EntityType[] | undefined; idKey?: IdKey | undefined; } | undefined) => { props: { [K_1 in EntitiesKey | IdsKey]: K_1 extends EntitiesKey ? Record : K_1 extends IdsKey ? EntityType[IdKey][] : never; }; config: { [K_2 in IdKeyRef]: IdKey; }; } : never; }; export declare const withEntities: (config?: { initialValue?: EntityType[] | undefined; idKey?: IdKey | undefined; } | undefined) => { props: { entities: Record; ids: EntityType[IdKey][]; }; config: { idKey: IdKey; }; }, defaultEntitiesRef: EntitiesRef<"entities", "ids", "idKey">; export declare const UIEntitiesRef: EntitiesRef<"UIEntities", "UIIds", "idKeyUI">, withUIEntities: (config?: { initialValue?: EntityType[] | undefined; idKey?: IdKey | undefined; } | undefined) => { props: { UIEntities: Record; UIIds: EntityType[IdKey][]; }; config: { idKeyUI: IdKey; }; }; export {};