interface PaginationOptions { page?: number; pageSize?: number; } interface PaginatedResponse { totalCount: number; } export type PaginatedFetcher = (request: R) => Promise; export type PaginatedContent = PaginatedResponse & { [key in K]: T[]; }; export declare const extract: (key: K) => >(result: T) => T[K]; /** * Fetches a paginated resource. * * @param key - The resource key of values list * @param fetcher - The method to retrieve paginated resources * @param request - A request with pagination options * @param initial - The first page * @returns An async generator of resources arrays */ export declare function fetchPaginated, R extends PaginationOptions>(key: K, fetcher: PaginatedFetcher, request: R, initial?: Promise): AsyncGenerator; /** * Fetches all paginated resource. * * @param key - The resource key of values list * @param fetcher - The method to retrieve paginated resources * @param request - A request with pagination options * @param initial - The first page * @returns A resources array Promise */ export declare const fetchAll: , R extends PaginationOptions>(key: K, fetcher: PaginatedFetcher, request: R, initial?: Promise) => Promise<(Awaited extends infer T_1 ? T_1 extends Awaited ? T_1 extends readonly (infer InnerArr)[] ? InnerArr : T_1 : never : never)[]>; /** * Enriches a listing method with helpers. * * @param key - The resource key of values list * @param fetcher - The method to retrieve paginated resources * @param request - A request with pagination options * @returns A resource Promise with the pagination helpers * * @internal */ export declare const enrichForPagination: , R extends PaginationOptions>(key: K, fetcher: PaginatedFetcher, request: R) => Promise & { all: () => Promise<(Awaited extends infer T_1 ? T_1 extends Awaited ? T_1 extends readonly (infer InnerArr)[] ? InnerArr : T_1 : never : never)[]>; [Symbol.asyncIterator]: () => AsyncGenerator; }; export {};