import { APIPromise, type APIResponseProps } from '../api-promise'; import type { Dedalus } from '../client'; import type { FinalRequestOptions } from '../internal/request-options'; export type PageRequestOptions = Pick; export declare abstract class AbstractPage implements AsyncIterable { protected readonly client: Dedalus; protected readonly options: FinalRequestOptions; protected readonly response: Response; protected readonly body: unknown; constructor(client: Dedalus, response: Response, body: unknown, options: FinalRequestOptions); abstract nextPageRequestOptions(): PageRequestOptions | null; abstract getPaginatedItems(): readonly Item[]; hasNextPage(): boolean; getNextPage(): Promise; iterPages(): AsyncGenerator; [Symbol.asyncIterator](): AsyncGenerator; } export type PageConstructor, Item> = new (client: Dedalus, response: Response, body: unknown, options: FinalRequestOptions) => Page; export declare class PagePromise, Item = ReturnType[number]> extends APIPromise implements AsyncIterable { constructor(client: Dedalus, request: Promise, Page: PageConstructor); [Symbol.asyncIterator](): AsyncGenerator; } export interface CursorPageParams { cursor?: string; limit?: number; } export interface CursorPageResponse { items: Array; next_cursor: string | null; } export declare class CursorPage extends AbstractPage implements CursorPageResponse { items: Array; next_cursor: string | null; constructor(client: Dedalus, response: Response, body: unknown, options: FinalRequestOptions); getPaginatedItems(): Item[]; nextPageRequestOptions(): PageRequestOptions | null; } //# sourceMappingURL=pagination.d.ts.map