/**
 * normalizers.ts
 *
 * Input normalization and validation helpers extracted from
 * unified-config-loader.ts (Phase 2 split — issue #1164).
 *
 * Contains: browser config normalizers, session affinity TTL normalizer,
 * composite variant validator, continuity config normalizer, and official
 * channels config normalizer.
 */
import type { UnifiedConfig, BrowserConfig, BrowserEvalMode, BrowserToolPolicy, OfficialChannelsConfig, ContinuityConfig } from '../unified-config-types';
export declare function normalizeBrowserDevtoolsPort(value: number | undefined): number;
export declare function normalizeBrowserPolicy(value: string | undefined): BrowserToolPolicy;
export declare function normalizeBrowserEvalMode(value: string | undefined): BrowserEvalMode;
export declare function canonicalizeBrowserConfig(config?: BrowserConfig, fallback?: BrowserConfig): BrowserConfig;
export declare function normalizeSessionAffinityTtl(value: unknown, fallback: string): string;
export declare function hasPositiveDuration(value: string): boolean;
/**
 * Validate composite variant provider strings.
 * Warns about invalid providers in composite variant configurations.
 */
export declare function validateCompositeVariants(config: UnifiedConfig): void;
/**
 * Normalize continuity inheritance mapping payload.
 * Keeps only non-empty string keys and values.
 */
export declare function normalizeContinuityInheritanceMap(value: unknown): Record<string, string> | undefined;
/**
 * Normalize continuity section.
 * Supports legacy root key: continuity_inherit_from_account.
 */
export declare function normalizeContinuityConfig(partial: Partial<UnifiedConfig>): ContinuityConfig | undefined;
export interface LegacyDiscordChannelsConfig {
    enabled?: boolean;
    unattended?: boolean;
}
export declare function normalizeOfficialChannelsConfig(partial: Partial<UnifiedConfig> & {
    discord_channels?: LegacyDiscordChannelsConfig;
}): OfficialChannelsConfig;
//# sourceMappingURL=normalizers.d.ts.map