89 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			89 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import { FinalRequestOptions } from "../internal/request-options.js"; | ||
|  | import { APIPromise } from "./api-promise.js"; | ||
|  | import { type OpenAI } from "../client.js"; | ||
|  | import { type APIResponseProps } from "../internal/parse.js"; | ||
|  | export type PageRequestOptions = Pick<FinalRequestOptions, 'query' | 'headers' | 'body' | 'path' | 'method'>; | ||
|  | export declare abstract class AbstractPage<Item> implements AsyncIterable<Item> { | ||
|  |     #private; | ||
|  |     protected options: FinalRequestOptions; | ||
|  |     protected response: Response; | ||
|  |     protected body: unknown; | ||
|  |     constructor(client: OpenAI, response: Response, body: unknown, options: FinalRequestOptions); | ||
|  |     abstract nextPageRequestOptions(): PageRequestOptions | null; | ||
|  |     abstract getPaginatedItems(): Item[]; | ||
|  |     hasNextPage(): boolean; | ||
|  |     getNextPage(): Promise<this>; | ||
|  |     iterPages(): AsyncGenerator<this>; | ||
|  |     [Symbol.asyncIterator](): AsyncGenerator<Item>; | ||
|  | } | ||
|  | /** | ||
|  |  * 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<PageClass extends AbstractPage<Item>, Item = ReturnType<PageClass['getPaginatedItems']>[number]> extends APIPromise<PageClass> implements AsyncIterable<Item> { | ||
|  |     constructor(client: OpenAI, request: Promise<APIResponseProps>, Page: new (...args: ConstructorParameters<typeof AbstractPage>) => 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<Item>; | ||
|  | } | ||
|  | export interface PageResponse<Item> { | ||
|  |     data: Array<Item>; | ||
|  |     object: string; | ||
|  | } | ||
|  | /** | ||
|  |  * Note: no pagination actually occurs yet, this is for forwards-compatibility. | ||
|  |  */ | ||
|  | export declare class Page<Item> extends AbstractPage<Item> implements PageResponse<Item> { | ||
|  |     data: Array<Item>; | ||
|  |     object: string; | ||
|  |     constructor(client: OpenAI, response: Response, body: PageResponse<Item>, options: FinalRequestOptions); | ||
|  |     getPaginatedItems(): Item[]; | ||
|  |     nextPageRequestOptions(): PageRequestOptions | null; | ||
|  | } | ||
|  | export interface CursorPageResponse<Item> { | ||
|  |     data: Array<Item>; | ||
|  |     has_more: boolean; | ||
|  | } | ||
|  | export interface CursorPageParams { | ||
|  |     after?: string; | ||
|  |     limit?: number; | ||
|  | } | ||
|  | export declare class CursorPage<Item extends { | ||
|  |     id: string; | ||
|  | }> extends AbstractPage<Item> implements CursorPageResponse<Item> { | ||
|  |     data: Array<Item>; | ||
|  |     has_more: boolean; | ||
|  |     constructor(client: OpenAI, response: Response, body: CursorPageResponse<Item>, options: FinalRequestOptions); | ||
|  |     getPaginatedItems(): Item[]; | ||
|  |     hasNextPage(): boolean; | ||
|  |     nextPageRequestOptions(): PageRequestOptions | null; | ||
|  | } | ||
|  | export interface ConversationCursorPageResponse<Item> { | ||
|  |     data: Array<Item>; | ||
|  |     has_more: boolean; | ||
|  |     last_id: string; | ||
|  | } | ||
|  | export interface ConversationCursorPageParams { | ||
|  |     after?: string; | ||
|  |     limit?: number; | ||
|  | } | ||
|  | export declare class ConversationCursorPage<Item> extends AbstractPage<Item> implements ConversationCursorPageResponse<Item> { | ||
|  |     data: Array<Item>; | ||
|  |     has_more: boolean; | ||
|  |     last_id: string; | ||
|  |     constructor(client: OpenAI, response: Response, body: ConversationCursorPageResponse<Item>, options: FinalRequestOptions); | ||
|  |     getPaginatedItems(): Item[]; | ||
|  |     hasNextPage(): boolean; | ||
|  |     nextPageRequestOptions(): PageRequestOptions | null; | ||
|  | } | ||
|  | //# sourceMappingURL=pagination.d.ts.map
 |