import { DataSourceAggregationField, DataSourceArgumentMap } from "./DataSource"; import { Resource, ResourceID } from "./Resource"; import { ResourceBase, ResourceBaseConfig, ResourceBaseOptions } from "./ResourceBase"; import { SortInfo } from "./DataSourceRequest"; export interface ResourceCollectionOptions extends ResourceBaseOptions> { autopersistConfigKey?: string; aggregations?: DataSourceAggregationField[]; initialFilters?: DataSourceArgumentMap; initialSearch?: string; initialSorting?: SortInfo[]; initialOffset?: number; initialLimit?: number; } export declare type ResourceCollectionConfig = ResourceBaseConfig & ResourceCollectionOptions; export declare class ResourceCollection = ResourceCollectionConfig> extends ResourceBase { count: number | undefined; aggregations?: { [key: string]: any; }; filters?: { [key: string]: DataSourceArgumentMap; }; search?: string; sorting?: any; offset?: number; limit?: number; initialConfig: C; autopersistConfigKey?: string; hasFilterChanges: boolean; private loadingHash; constructor(config: C); private autopersistConfig; get: () => Promise; reload: () => Promise; delete: (id: string | number) => Promise; getItem: (props: { id: string | number; args?: { [key: string]: any; } | undefined; autoload?: boolean | undefined; }) => Resource; patchItemValues(id: ResourceID, values: Partial): Promise; setInitialValues: (values: ResourceCollectionConfig) => void; resetFilters: () => void; resetPagination: () => void; updateFilters: (filters?: DataSourceArgumentMap | undefined, autoreload?: boolean, autopersist?: boolean) => Promise; updateNamedFilters: (key: string, filters?: DataSourceArgumentMap | undefined, autoreload?: boolean, autopersist?: boolean) => Promise; namedFilter: (key: string) => DataSourceArgumentMap | undefined; updateSearch: (search?: string | undefined, autoreload?: boolean) => Promise; updateSorting: (sorting?: SortInfo[] | undefined, autoreload?: boolean) => Promise; updateOffset: (offset?: number | undefined, autoreload?: boolean) => Promise; updateLimit: (limit?: number | undefined, autoreload?: boolean) => Promise; get page(): number; }