easy-currencies
Version:
A tool for easy conversion of currencies.
103 lines (102 loc) • 2.9 kB
TypeScript
import { AxiosInstance } from "axios";
import { Provider, UserDefinedProvider, ProviderReference } from "./providers";
/**
* Proxy configuration object.
*/
export interface ProxyConfiguration {
host: string;
port: number;
auth: {
username: string;
password: string;
};
}
/**
* Config object that initializes with configuration data
* passed in by the user.
*
* @export
* @class Config
*/
export declare class Config {
/**
* Array of active curency API providers.
*
* @type {Provider[]}
* @memberof Config
*/
private _active;
/**
* Provider getter.
*
* @returns {Provider[]}
* @memberof Config
*/
get providers(): Provider[];
/**
* Active client.
*/
private _client;
/**
* Client setter.
* @param client The client.
*/
setClient: (client: AxiosInstance) => void;
/**
* Client getter.
*/
getClient: () => AxiosInstance;
/**
* Provider setter (adder).
*
* @param {Provider[]} providers - providers to be added
* @param {boolean} [setActive=false] - should the new provider(s) be prioritized
* @returns {void}
* @memberof Config
*/
private addProviders;
/**
* Adds a single new, user-defined provider to the list of providers.
*
* @param {string} name - the new provider name
* @param {Provider} provider - the new provider object
* @param {boolean} [setActive=false] - should the new provider(s) be prioritized
* @memberof Config
*/
add: (name: string, provider: Provider, setActive?: boolean) => void;
/**
* Adds multiple new, user-defined provider to the list of providers.
*
* @param {UserDefinedProvider[]} providers - providers to be added
* @param {boolean} [setActive=false] - should the new provider(s) be prioritized
* @memberof Config
*/
addMultiple: (newProviders: UserDefinedProvider[], setActive?: boolean) => void;
/**
* Removes a specific provider
* @param {Provider} provider - provider to be removed
* @memberof Config
*/
remove: (provider: Provider) => void;
/**
* Returns the current provider
*
* @returns {Provider} - current provider
* @memberof Config
*/
activeProvider(): Provider;
/**
* Creates an instance of Config.
* @param {(...ProviderReference[] | undefined[] | string[])} config
* @memberof Config
*/
constructor(...config: ProviderReference[] | undefined[] | string[]);
}
/**
* Config resolver that normalizes configuration input into the config interface
*
* @export
* @param {(...ProviderReference[] | undefined[] | string[])} configuration
* @returns {Provider[]}
*/
export declare function resolveProviders(...configuration: ProviderReference[] | undefined[] | string[]): Provider[];