/** * ConfigService - Unified configuration management * * Loads configuration from: * 1. ~/.foundation/config.yaml (global) * 2. .foundation/config.yaml (project-level overrides) * 3. Environment variables * * Environment variable interpolation: ${VAR_NAME} in YAML values */ import type { FoundationConfig, DefaultsConfig, ProvidersConfig, RoleConfig, ArgusConfig, WorktreeConfig } from '../types/index.js'; export declare class ConfigService { private static instance; private config; private globalConfigPath; private initialized; private constructor(); static getInstance(): ConfigService; /** * Initialize configuration by loading from files */ init(): Promise; /** * Get the full configuration */ getConfig(): FoundationConfig; /** * Get defaults configuration */ getDefaults(): DefaultsConfig; /** * Get providers configuration */ getProviders(): ProvidersConfig; /** * Get a specific role configuration */ getRole(role: string): RoleConfig | undefined; /** * Get all roles */ getRoles(): Record; /** * Get Argus configuration */ getArgusConfig(): ArgusConfig; /** * Get worktree configuration */ getWorktreeConfig(): WorktreeConfig; /** * Get the global config directory path */ getGlobalConfigDir(): string; /** * Get the project config directory path */ getProjectConfigDir(): string; /** * Ensure global config directory exists */ ensureGlobalConfigDir(): void; /** * Ensure project config directory exists */ ensureProjectConfigDir(): void; /** * Save current config to global config file */ saveGlobalConfig(): void; /** * Create default config file if it doesn't exist */ createDefaultConfig(): void; /** * Load and parse a YAML file */ private loadYamlFile; /** * Deep merge two configs, with source overriding target */ private mergeConfig; /** * Recursively interpolate ${VAR_NAME} patterns with environment variables */ private interpolateEnvVars; } //# sourceMappingURL=config.service.d.ts.map