/// <reference types="bluebird" />
import * as Promise from 'bluebird';
import { AxiosRequestConfig } from 'axios';
import { HudAiClient, HudAiClientConfiguration } from './HudAiClient';
export interface RequestOptions {
    method: 'GET' | 'PUT' | 'POST' | 'DELETE';
    data?: object;
    params?: object;
    url: string;
}
export interface MakeRequestOptions {
    refreshTokens?: boolean;
}
export declare const defaultAxiosConfig: AxiosRequestConfig;
export declare class RequestManager {
    private axios;
    private client;
    constructor(client: HudAiClient, config: HudAiClientConfiguration);
    makeRequest(requestOptions: RequestOptions, options?: MakeRequestOptions): Promise<any>;
    buildAxiosOptions(options: RequestOptions): {
        data: object | undefined;
        method: "GET" | "PUT" | "POST" | "DELETE";
        params: object;
        url: string;
    };
    private buildUrl(url, params?);
}
