import { AsyncIterableExt } from './async-iterable';
type PaginationResult<T> = {
    data: T[];
    hasMore: boolean;
};
type IterablePaginationResult<T> = Promise<PaginationResult<T>> & AsyncIterableExt<T>;
type PaginationFunction<Options, R extends {
    id: any;
}> = Options extends {
    after?: string;
} ? (options: Options) => Promise<PaginationResult<R>> : never;
type IterableMethod<Options, R> = Partial<Options> extends Options ? (options?: Options) => IterablePaginationResult<R> : (options: Options) => IterablePaginationResult<R>;
export declare function toIterablePaginationResult<Options, R extends {
    id: string;
}>(fn: PaginationFunction<Options, R>): IterableMethod<Options, R>;
export {};
//# sourceMappingURL=pagination.d.ts.map