import type { IRegisteredEntity } from '..'; import type IAdapter from '../adapter'; import EntityBaseStore from './base'; export declare type ListItem = Record; export interface IState { loading: boolean; list: ListItem[]; loadingItems: Set; total: number; perPage: number; offset: number; page: number; error: Error | null; } export interface IApiOptions { page?: number; perPage?: number; filters?: Record; include?: string[]; query?: Record; } export default class EntityListStore extends EntityBaseStore { protected entity: IRegisteredEntity | null; protected staticFilters: Record | null; protected lastQueryNumber: number; protected getInitialState(): IState; protected itemAction(item: ListItem, fn: (args: { entity: IRegisteredEntity; adapter: IAdapter; itemKey: string; }) => Promise): Promise; reload({ page, perPage, filters, include, query }?: IApiOptions): Promise; patchItem(item: ListItem, newValues: Record): Promise; moveItem(from: number, to: number): Promise; deleteItem(item: ListItem): Promise; setEntity(entity: IRegisteredEntity | null): void; setStaticFilters(filters: Record | null): void; get loading(): boolean; get total(): number; get items(): ListItem[]; get page(): number; get lastPage(): number; get perPage(): number; get offset(): number; get hasPagination(): boolean; get loadingItems(): Set; get error(): Error | null; }