@multicloud-io/client
Version:
Customer-facing Multicloud API client with limited field exposure
80 lines • 2.6 kB
TypeScript
/**
* Configuration management for Multicloud connections
*
* This module provides the MulticloudConfig class for loading and managing
* configuration from files, environment variables, and direct parameters
* with proper precedence handling.
*
* Supports both Node.js and browser environments (server-side only for security).
*/
export interface MulticloudConnectionParams {
serverUrl: string;
clientCert?: string;
clientKey?: string;
verifySsl: boolean;
timeout: number;
debug: boolean;
accessToken?: string;
}
export interface MulticloudConfigOptions {
/** Environment variable prefix (default: MULTICLOUD_) */
envPrefix?: string;
/** Default configuration file path */
configFile?: string;
/** Whether running in production mode */
isProduction?: boolean;
}
export declare class MulticloudConfig {
private static readonly DEFAULT_CONFIG_PATH;
/**
* Default configuration values
*/
private static readonly DEFAULT_CONFIG;
/**
* Get connection parameters with file and environment variable overrides
*
* Applies configuration precedence:
* 1. Direct overrides (highest priority)
* 2. Environment variables
* 3. Configuration file
* 4. Default values (lowest priority)
*
* @param overrides Direct parameter overrides
* @param options Configuration options
* @returns Connection parameters
*/
static getConnectionParams(overrides?: Partial<MulticloudConnectionParams>, options?: MulticloudConfigOptions): MulticloudConnectionParams;
/**
* Load configuration from YAML file
*/
private static applyFileConfig;
/**
* Substitute variables in configuration content
* Supports ${variable} syntax with simple replacements
*/
private static substituteVariables;
/**
* Apply environment variable overrides to parameters
*/
private static applyEnvOverrides;
/**
* Validate that required parameters are present
*/
private static validateParams;
/**
* Get configuration information for debugging
*/
static getConfigInfo(options?: MulticloudConfigOptions): Record<string, any>;
/**
* Check if configuration file exists
*/
static hasConfigFile(configFile?: string): boolean;
/**
* Check if multicloud integration is enabled
*
* @param options Configuration options
* @returns True if multicloud is properly configured
*/
static isEnabled(options?: MulticloudConfigOptions): boolean;
}
//# sourceMappingURL=config.d.ts.map