/**
 * Proxy Config Resolver
 *
 * Resolves proxy configuration from multiple sources with priority:
 * CLI flags > Environment variables > config.yaml > defaults
 *
 * Supports both local (spawn CLIProxyAPI) and remote (connect to external) modes.
 */
import type { ResolvedProxyConfig } from '../types';
/** CLI flags for proxy configuration */
export declare const PROXY_CLI_FLAGS: readonly ["--proxy-host", "--proxy-port", "--proxy-protocol", "--proxy-auth-token", "--proxy-timeout", "--local-proxy", "--remote-only", "--allow-self-signed"];
/** Environment variable names for proxy configuration */
export declare const PROXY_ENV_VARS: {
    readonly host: "CCS_PROXY_HOST";
    readonly port: "CCS_PROXY_PORT";
    readonly protocol: "CCS_PROXY_PROTOCOL";
    readonly authToken: "CCS_PROXY_AUTH_TOKEN";
    readonly timeout: "CCS_PROXY_TIMEOUT";
    readonly fallbackEnabled: "CCS_PROXY_FALLBACK_ENABLED";
    readonly allowSelfSigned: "CCS_ALLOW_SELF_SIGNED";
};
/** Parsed CLI proxy flags */
interface ParsedProxyFlags {
    host?: string;
    port?: number;
    protocol?: 'http' | 'https';
    authToken?: string;
    timeout?: number;
    localProxy: boolean;
    remoteOnly: boolean;
    allowSelfSigned?: boolean;
}
/** Proxy config from environment variables */
interface EnvProxyConfig {
    host?: string;
    port?: number;
    protocol?: 'http' | 'https';
    authToken?: string;
    timeout?: number;
    fallbackEnabled?: boolean;
    allowSelfSigned?: boolean;
}
/**
 * Parse proxy-related CLI flags from argv.
 * Returns parsed flags and remaining args (with proxy flags removed).
 */
export declare function parseProxyFlags(args: string[]): {
    flags: ParsedProxyFlags;
    remainingArgs: string[];
};
/**
 * Get proxy configuration from environment variables.
 */
export declare function getProxyEnvVars(): EnvProxyConfig;
/**
 * Resolve proxy configuration with priority: CLI > ENV > config.yaml > defaults.
 *
 * @param cliArgs - Raw CLI arguments
 * @param configYamlProxy - Proxy section from config.yaml (optional, Phase 1)
 * @returns Resolved configuration and remaining args (without proxy flags)
 */
export declare function resolveProxyConfig(cliArgs: string[], _configYamlProxy?: {
    remote?: {
        enabled?: boolean;
        host?: string;
        port?: number;
        protocol?: 'http' | 'https';
        auth_token?: string;
        management_key?: string;
        timeout?: number;
        fallback_enabled?: boolean;
    };
    local?: {
        port?: number;
        auto_start?: boolean;
    };
}): {
    config: ResolvedProxyConfig;
    remainingArgs: string[];
};
/**
 * Check if args contain any proxy flags.
 * Used for quick filtering before full parse.
 */
export declare function hasProxyFlags(args: string[]): boolean;
export {};
//# sourceMappingURL=proxy-config-resolver.d.ts.map