import { FinalRequestOptions } from "../internal/request-options.mjs"; import { type Mixedbread } from "../client.mjs"; import { APIPromise } from "./api-promise.mjs"; import { type APIResponseProps } from "../internal/parse.mjs"; export type PageRequestOptions = Pick; export declare abstract class AbstractPage implements AsyncIterable { #private; protected options: FinalRequestOptions; protected response: Response; protected body: unknown; constructor(client: Mixedbread, response: Response, body: unknown, options: FinalRequestOptions); abstract nextPageRequestOptions(): PageRequestOptions | null; abstract getPaginatedItems(): Item[]; hasNextPage(): boolean; getNextPage(): Promise; iterPages(): AsyncGenerator; [Symbol.asyncIterator](): AsyncGenerator; } /** * This subclass of Promise will resolve to an instantiated Page once the request completes. * * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg: * * for await (const item of client.items.list()) { * console.log(item) * } */ export declare class PagePromise, Item = ReturnType[number]> extends APIPromise implements AsyncIterable { constructor(client: Mixedbread, request: Promise, Page: new (...args: ConstructorParameters) => PageClass); /** * Allow auto-paginating iteration on an unawaited list call, eg: * * for await (const item of client.items.list()) { * console.log(item) * } */ [Symbol.asyncIterator](): AsyncGenerator; } export interface LimitOffsetResponse { data: Array; pagination: LimitOffsetResponse.Pagination; } export declare namespace LimitOffsetResponse { interface Pagination { total?: number; offset?: number; } } export interface LimitOffsetParams { /** * The number of elements to skip. */ offset?: number; /** * The maximum number of elements to fetch. */ limit?: number; } export declare class LimitOffset extends AbstractPage implements LimitOffsetResponse { data: Array; pagination: LimitOffsetResponse.Pagination; constructor(client: Mixedbread, response: Response, body: LimitOffsetResponse, options: FinalRequestOptions); getPaginatedItems(): Item[]; nextPageRequestOptions(): PageRequestOptions | null; } export interface CursorResponse { data: Array; pagination: CursorResponse.Pagination; } export declare namespace CursorResponse { interface Pagination { first_cursor?: string; last_cursor?: string; has_more?: boolean; total?: number; } } export interface CursorParams { /** * The cursor to base the request on for the next elements. */ after?: string; /** * The cursor to base the request on for the previous elements. */ before?: string; limit?: number; include_total?: boolean; } export declare class Cursor extends AbstractPage implements CursorResponse { data: Array; pagination: CursorResponse.Pagination; constructor(client: Mixedbread, response: Response, body: CursorResponse, options: FinalRequestOptions); getPaginatedItems(): Item[]; hasNextPage(): boolean; nextPageRequestOptions(): PageRequestOptions | null; } //# sourceMappingURL=pagination.d.mts.map