import { IdSelector } from '@ngrx/entity'; export interface MinimalEntity { id: string; } export interface EntityCachingState { entityCache: Map; addedEntityIds: string[] | undefined; updatedEntityIds: string[] | undefined; cacheSizeSoftConstraint: number; } export interface EntityCachingStateAdapter { addOne>(entity: T, state: S): S; addMany>(entities: T[], state: S): S; upsertOne>(entity: T, state: S): S; upsertMany>(entities: T[], state: S): S; removeOne>(key: string, state: S): S; removeMany>(keys: string[], state: S): S; removeToIndex>(index: number, state: S): S; removeAll>(state: S): S; } export interface EntityCachingSelectors> { selectIds: (state: V) => string[]; selectAll: (state: V) => T[]; selectTotal: (state: V) => number; } export interface EntityCachingAdapter extends EntityCachingStateAdapter { selectedId: IdSelector; getInitialState(cacheSize?: number): EntityCachingState; getInitialState(state: S, cacheSize?: number): EntityCachingState & S; getSelectors(): EntityCachingSelectors>; }