import { IDtoParser, BggThingDto } from '../../dto';
import { IFetcher } from '../../fetcher';
import { IRequestPaginator } from '../../paginator';
import { IQueryBuilder } from '../../query';
import { IThingRequest } from '../../request';
import { IResponseParser } from '../../responseparser';
import { ProgressResponseDto, QueryOptions } from '../dto';
import { IBggThingClient } from '..';
export declare class BggThingClient implements IBggThingClient {
    resource: string;
    builder: IQueryBuilder<IThingRequest>;
    fetcher: IFetcher<string, string>;
    responseParser: IResponseParser<string, any>;
    dtoParser: IDtoParser<BggThingDto>;
    paginator: IRequestPaginator;
    progressHandler: (progress: ProgressResponseDto<BggThingDto>) => void;
    constructor(builder: IQueryBuilder<IThingRequest>, fetcher: IFetcher<string, string>, responseParser: IResponseParser<string, any>, dtoParser: IDtoParser<BggThingDto>, paginator: IRequestPaginator);
    query(request: IThingRequest): Promise<BggThingDto[]>;
    queryWithProgress(request: IThingRequest, progressOptions?: QueryOptions, progressHandler?: (progress: ProgressResponseDto<BggThingDto>) => void): Promise<void>;
    private internalQuery;
}
