export interface PageWithItems<Item> {
    items?: Item[] | null;
    next_page?: string | null;
}
export declare class Pager<P extends object, Page extends PageWithItems<Item>, Item> {
    private readonly fetchPage;
    private readonly baseParams;
    private readonly tokenField;
    private started;
    private nextToken;
    constructor(fetchPage: (params: P) => Promise<Page>, params: P, tokenField?: keyof P | 'page_token');
    hasNext(): boolean;
    reset(): void;
    next(): Promise<Item[]>;
}
export declare function createPager<P extends object, Page extends PageWithItems<Item>, Item>(fetchPage: (params: P) => Promise<Page>, params: P, tokenField?: keyof P | 'page_token'): Pager<P, Page, Item>;
//# sourceMappingURL=pagination.d.ts.map