import { GetByStatementResponse } from './statement'; export interface PaginateOptions { /** * The "LIMIT" passed to queries */ pageSize?: number; startingOffset?: number; /** * If you want to make sure not to exceed your query quota, * you can apply an interval inbetween each query */ interval?: number; /** * How to execute your query */ executeQuery(limit: number, offset: number): Promise> | Promise<[GetByStatementResponse, ...any[]]>; } /** * Paginate queries. * * @see {@link PaginateOptions} * @see {@link iterate} * @example * ``` * for await (const page of paginate({ * executeQuery: (limit, offset) => * query( * client, * 'getLineItemsByStatementAsync', * { limit, offset } * ) * })) { * console.info(page.items) * } * ``` */ export declare function paginate({ executeQuery, interval, pageSize, startingOffset, }: PaginateOptions): AsyncGenerator<{ items: T[]; pageNum: number; }>;