import { API, Objects } from '../api';
export interface ICollectPaginateResponse<T> {
    count: number;
    items: T[];
    groups?: Objects.GroupsGroupFull[];
    profiles?: Objects.UsersUserFull[];
}
export interface ICollectIteratorOptions {
    api: API;
    method: string;
    params: Record<string, any> & {
        count?: number;
        offset?: number;
    };
    maxCount?: number;
    countPerRequest: number;
    retryLimit?: number;
    parallelRequests?: number;
}
export interface ICollectIteratorData<T> {
    received: number;
    percent: number;
    total: number;
    items: T[];
    profiles: Objects.UsersUserFull[];
    groups: Objects.GroupsGroupFull[];
}
export declare function createCollectIterator<T>({ api, method, params: rawParams, countPerRequest, maxCount, retryLimit, parallelRequests, }: ICollectIteratorOptions): AsyncGenerator<ICollectIteratorData<T>>;
