type IRequestReturn = { count: number; list: TEntity[]; page: number; } | undefined; type TGetEntities = (page?: number) => Promise>; interface IFlatListStoreParams { method: keyof TStore; /** * Initial entities */ entities?: TEntity[]; /** * Initial total entities */ totalEntities?: number; /** * Initial page */ initPage?: number; keyName?: keyof TEntity; pageSize?: number; /** * First request delay to prevent flickering */ firstDelay?: number; } /** * Flat list store */ declare class FlatListStore { /** * List of entities */ entities: TEntity[]; /** * Indicates than API request in process */ isFetching: boolean; /** * Indicates than flat list renders first time */ isFirstRender: boolean; /** * Total entities count */ totalEntities: number; /** * Current page */ private currentPage; /** * Default page size */ pageSize: number; /** * Key extractor property name */ private readonly keyName; /** * Delay first request to prevent flickering */ private readonly firstDelay; /** * Get flat list entities method */ private readonly method; /** * @private */ private readonly store; /** * @constructor */ /** * @constructor */ constructor(store: TStore, { method, entities, firstDelay, totalEntities, initPage, pageSize, keyName, }: IFlatListStoreParams); /** * Reset state before retry requests */ /** * Reset state before retry requests */ resetIsFirstRender(): void; /** * Set flat list entities */ /** * Set flat list entities */ setEntities(entities: TEntity[], shouldAdd?: boolean): void; /** * Get entities */ getEntities: (page?: number) => Promise>; /** * Wrapper for get entities */ /** * Wrapper for get entities */ wrapRequest(callback: TGetEntities): TGetEntities; /** * Toggle fetching */ /** * Toggle fetching */ setFetching(isFetching: boolean): void; /** * Extract key from entity for flat list */ keyExtractor: (entity: TExtractor) => string; /** * Lazy load pagination */ /** * Lazy load pagination */ getNextPage(): Promise> | undefined; /** * Set count entities */ /** * Set count entities */ setTotalCountEntities(count: number): void; } export { FlatListStore as default, IRequestReturn, TGetEntities, IFlatListStoreParams };