type Id = string | number; type Pagination = { ids: Id[]; meta: T; }; type PaginationWithData = { data: D[]; } & Pagination; interface PaginationState { entityRecord: Record; paginationRecord: Record>; createOne(rawData: RawData): void; tryReadOne(id: Id): Data | undefined; readOne(id: Id): Data; updateOne(id: Id, partialData: Partial): void; deleteOne(id: Id): void; upsertOne(rawData: RawData): void; upsertMany(rawData: RawData[]): void; tryReadPagination(key: string): PaginationWithData | undefined; readPagination(key: string): PaginationWithData; replacePagination(key: string, rawData: RawData[]): void; appendPagination(key: string, rawData: RawData[]): void; prependPagination(key: string, rawData: RawData[]): void; sortPagination(key: string, compare: (a: Data, b: Data) => number): void; updatePagination(key: string, pagination: Partial>): void; } /** * @experimental */ export declare function createPaginationState({ selectId, transform, merge, getDefaultMeta, }?: { selectId?: (data: Data) => Id; transform?: (rawData: RawData) => Data; merge?: (from: Data, to: Partial) => Data; getDefaultMeta?: () => M; }): PaginationState; export {};