import type { AxiosInstance } from 'axios'; import AxiosStaticInstanceProvider from "./provider"; export type ConfigPlugin = (axios: AxiosInstance, config: Config) => void; export type PartialConstructorString = string | null; export type PartialConstructorNumber = number | null; export type PartialPluginConstructorPlugins = ConfigPlugin[] | null; export default class Config { private _host; private _port; private _protocol; private _prefix; private _axiosProvider; private _axios; private _plugins; constructor(options?: { protocol?: PartialConstructorString; host?: PartialConstructorString; port?: PartialConstructorNumber; prefix?: PartialConstructorString; plugins?: PartialPluginConstructorPlugins; axiosProvider?: AxiosStaticInstanceProvider; }); static forName(name: string): Config | null; init(protocol: PartialConstructorString, host: PartialConstructorString, port: PartialConstructorNumber, prefix: PartialConstructorString, plugins: PartialPluginConstructorPlugins): void; get host(): string; set host(value: string); get port(): number; set port(value: number); get protocol(): string; set protocol(value: string); get prefix(): string; set prefix(value: string); /** * default value:
* http://localhost:8080 */ get origin(): string; /** * if prefix = "/a"
* return "http://localhost:8080/a" */ get baseURL(): string; get plugins(): PartialPluginConstructorPlugins; set plugins(value: PartialPluginConstructorPlugins); get axiosProvider(): AxiosStaticInstanceProvider; set axiosProvider(value: AxiosStaticInstanceProvider); /** * register config global and return self. * @param name * @return {Config} config self */ register(name: string): Config; /** * remove self from global config store. * @return {Config} - config self */ unregister(): Config; requestAxiosInstance(): Promise; } export declare const config: Config;