interface Target {
    readonly url: string;
    readonly method: 'head' | 'get' | 'GET' | 'delete' | 'DELETE' | 'HEAD' | 'options' | 'OPTIONS' | 'post' | 'POST' | 'put' | 'PUT' | 'patch' | 'PATCH' | undefined;
}
interface TruePromise {
    readonly resolve: any;
    readonly reject: any;
}
interface Request {
    readonly url: string;
    readonly method: string | undefined;
    readonly data?: object;
    readonly headers?: object;
}
declare class Response {
    readonly error: boolean;
    readonly response: any;
    readonly duration: string;
    readonly request: Request;
    constructor(request: Request, response: any, duration: string);
}
declare class RequestPool {
    responses: any[];
    total: number;
    targets: Target[];
    poolSize: number;
    defaults: object;
    constructor(targets: Target[], poolSize: number);
    setDefaults(options: any): void;
    /**
     * make requests and store responses
     * @param truth
     */
    processTask(truth: TruePromise): Promise<any>;
    /**
     * start the pool
     * @return Promise<Response[]>
     */
    start(): Promise<Response[]>;
    /**
     * convert time in ms or sec
     * @param duration
     */
    static prettyTime(duration: any): string;
}
export { RequestPool, Response, Request, Target };
//# sourceMappingURL=index.d.ts.map