import { IRequestContext } from '../services/IRequestContext';
import IConfiguration from './IConfiguration';
export declare class ApiClientConfigurator {
    static getParams<RequestContextType extends IRequestContext, ResponseContextType, ObservableRequestContextType, ObservableResponseContextType, ServerConfiguration>(config: IConfiguration, serverConfigurationClass: new (url: string, variableConfiguration: {
        [key: string]: string;
    }) => ServerConfiguration, observableRequestContextParam: new (promise: Promise<RequestContextType>) => ObservableRequestContextType, observableResponseContextParam: new (promise: Promise<ResponseContextType>) => ObservableResponseContextType): {
        middleware: {
            pre(context: RequestContextType): ObservableRequestContextType;
            post(context: ResponseContextType): ObservableResponseContextType;
        }[];
        authMethods: {};
    };
    static getUserAgent(): string;
    protected static getAuthMethods(config: IConfiguration): {};
    protected static getBaseServer<ServerConfiguration>(config: IConfiguration, serverConfigurationClass: new (url: string, variableConfiguration: {
        [key: string]: string;
    }) => ServerConfiguration): {
        baseServer: ServerConfiguration;
    } | {
        baseServer?: undefined;
    };
    protected static getMiddleware<RequestContextType extends IRequestContext, ResponseContextType, ObservableRequestContextType, ObservableResponseContextType>(config: IConfiguration, observableRequestContextParam: new (promise: Promise<RequestContextType>) => ObservableRequestContextType, observableResponseContextParam: new (promise: Promise<ResponseContextType>) => ObservableResponseContextType): {
        pre(context: RequestContextType): ObservableRequestContextType;
        post(context: ResponseContextType): ObservableResponseContextType;
    }[];
    protected static getCustomMiddleware<RequestContextType extends IRequestContext, ResponseContextType, ObservableRequestContextType, ObservableResponseContextType>(config: IConfiguration, observableRequestContextParam: new (promise: Promise<RequestContextType>) => ObservableRequestContextType, observableResponseContextParam: new (promise: Promise<ResponseContextType>) => ObservableResponseContextType): {
        pre: (context: RequestContextType) => ObservableRequestContextType;
        post: (context: ResponseContextType) => ObservableResponseContextType;
    }[];
    protected static getHeaderMiddleware<RequestContextType extends IRequestContext, ResponseContextType, ObservableRequestContextType, ObservableResponseContextType>(config: IConfiguration, observableRequestContextParam: new (promise: Promise<RequestContextType>) => ObservableRequestContextType, observableResponseContextParam: new (promise: Promise<ResponseContextType>) => ObservableResponseContextType): {
        pre(context: RequestContextType): ObservableRequestContextType;
        post(context: ResponseContextType): ObservableResponseContextType;
    };
    protected static getHttpAgentMiddleware<RequestContextType extends IRequestContext, ResponseContextType, ObservableRequestContextType, ObservableResponseContextType>(config: IConfiguration, observableRequestContextParam: new (promise: Promise<RequestContextType>) => ObservableRequestContextType, observableResponseContextParam: new (promise: Promise<ResponseContextType>) => ObservableResponseContextType): {
        pre(context: RequestContextType): ObservableRequestContextType;
        post(context: ResponseContextType): ObservableResponseContextType;
    };
}
