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;
}
