stanza-extend
Version:
Modern XMPP in the browser, with a JSON API
28 lines (27 loc) • 730 B
TypeScript
import { Paging } from '../protocol/xep0059';
declare type RSMQuery<T> = (page: Paging) => Promise<{
results: T[];
paging: Paging;
}>;
interface RSMOptions<T> {
pageSize?: number;
direction?: 'forward' | 'backward';
reverse?: boolean;
before?: string;
after?: string;
max?: number;
query: RSMQuery<T>;
}
export declare class ResultSetPager<T> {
private query;
private cursor;
private direction;
private reverse;
private pageSize;
constructor(opts: RSMOptions<T>);
[Symbol.asyncIterator](): AsyncGenerator<T>;
size(): Promise<number | undefined>;
private fetchPage;
}
export declare function createPager<T>(opts: RSMOptions<T>): ResultSetPager<T>;
export {};