export interface CursorPage {
    readonly cursor: string | null;
}
export interface PaginationOptions {
    /** Safety ceiling for a host or fixture which returns a non-terminating cursor chain. */
    readonly maxPages?: number;
    readonly signal?: AbortSignal;
}
/** Iterates an opaque host cursor chain without interpreting cursor contents. */
export declare function paginate<TPage extends CursorPage>(load: (cursor: string | null) => Promise<TPage>, options?: PaginationOptions): AsyncGenerator<TPage, void, void>;
export declare function collectPages<TPage extends CursorPage>(load: (cursor: string | null) => Promise<TPage>, options?: PaginationOptions): Promise<readonly TPage[]>;
export declare function collectPageItems<TPage extends CursorPage, TItem>(load: (cursor: string | null) => Promise<TPage>, items: (page: TPage) => readonly TItem[], options?: PaginationOptions): Promise<readonly TItem[]>;
