import { AxiosRequestConfig, AxiosRequestHeaders, InternalAxiosRequestConfig, Method, ResponseType } from "axios";
import { HttpTimings } from "../httpTimer";
export type F5HttpRequest = {
    baseURL?: string;
    method?: Method;
    url?: string;
    headers?: AxiosRequestHeaders | Partial<Record<string, string> & {
        "set-cookie"?: string[];
    }>;
    data?: any;
    validateStatus?: any;
    advancedReturn?: boolean;
    contentType?: string;
    responseType?: ResponseType;
    config?: {
        uuid?: string;
    };
};
/**
 * custom http response with timings, based on axios response
 */
export type HttpResponse<T = any> = {
    data?: T;
    status: number;
    statusText: string;
    headers?: AxiosRequestHeaders | Partial<Record<string, string> & {
        "set-cookie"?: string[];
    }>;
    async?: HttpResponse[];
    request?: {
        baseURL: string;
        url: string;
        uuid?: string;
        method: string;
        headers: AxiosRequestHeaders;
        protocol: string;
        timings?: HttpTimings;
    };
};
export interface CustomAxiosRequestConfig extends InternalAxiosRequestConfig {
    uuid?: string;
}
export interface AxiosResponseWithTimings {
    data?: any;
    headers?: AxiosRequestHeaders | Partial<Record<string, string> & {
        "set-cookie"?: string[];
    }>;
    request: any;
    statusText: string;
    status?: number;
    config?: uuidAxiosRequestConfig;
    async?: AxiosResponseWithTimings[];
}
export interface uuidAxiosRequestConfig extends AxiosRequestConfig {
    uuid?: string;
    transport?: unknown;
    rejectUnauthorized?: boolean;
    headers?: AxiosRequestHeaders | Partial<Record<string, string>>;
}
