/**
 * Team-Health-Watchdog (THW) — Config Loader
 *
 * Reads `~/.crewly/team-health/config.json`, validates against the SEALED
 * schema (§F.4), and on bad config logs `warn` and falls back to defaults.
 * MUST NEVER throw or crash the backend (§11.3).
 *
 * Env overrides:
 *   - TEAMHEALTH_ENABLED        ('true'/'false')
 *   - TEAMHEALTH_SHADOW_MODE    ('true'/'false')
 *   - TEAMHEALTH_T1_MS          (numeric ms)
 *   - TEAMHEALTH_T2_MS          (numeric ms)
 *
 * @module services/team-health/team-health-config
 */
import type { TeamHealthConfig } from './team-health-types.js';
export declare function resolveConfigPath(): string;
export declare function resolveSidecarDir(): string;
export interface ConfigLogger {
    warn(message: string, meta?: Record<string, unknown>): void;
    info(message: string, meta?: Record<string, unknown>): void;
}
/**
 * Load and validate the THW config from disk + env. Always returns a
 * valid TeamHealthConfig — bad fields fall back to defaults with a warn.
 *
 * @param logger - Optional logger for warnings
 * @returns A fully-populated, valid TeamHealthConfig
 */
export declare function loadTeamHealthConfig(logger?: ConfigLogger): TeamHealthConfig;
/**
 * Merge user-provided config object onto defaults. Validates types as
 * it goes; invalid fields fall back to default with a warn.
 */
export declare function mergeWithDefaults(input: unknown, logger?: ConfigLogger): TeamHealthConfig;
/**
 * Apply environment-variable overrides on top of the merged config.
 * Mutates `config` in place.
 */
export declare function applyEnvOverrides(config: TeamHealthConfig, logger?: ConfigLogger): void;
//# sourceMappingURL=team-health-config.d.ts.map