import { AxiosRequestConfig } from 'axios';
import { HttpClient } from './clients/types';
export { ApiResponse, ApplicationErrorApiResponse, ClientErrorApiResponse, SuccessfulApiResponse, ResponseParser, } from './clients/types';
export declare enum ClientNames {
    Axios = "axios"
}
export type clientOptions = AxiosRequestConfig;
/**
 * @class HttpClientFactory
 * @classdesc
 * A factory class to generate http clients
 * @example
 * const httpClient = HttpClientFactory.getHttpClient('axios');
 * const response = await httpClient.post("https://example.com", { foo: "bar" });
 * if (response.type === "success") {
 * console.log(response.statusCode);
 * console.log(response.responseBody);
 * } else if (response.type === "application-error") {
 * console.log(response.statusCode);
 * console.log(response.message);
 * console.log(response.responseBody);
 * } else if (response.type === "client-error") {
 * console.log(response.statusCode);
 * console.log(response.message);
 * }
 */
export declare class HttpClientFactory {
    static getHttpClient(name: ClientNames, options?: clientOptions): HttpClient;
}
//# sourceMappingURL=factory.d.ts.map