/**
 * Core config generation for CLIProxyAPI
 * Handles unified config.yaml generation for all providers
 */
import type { CLIProxyProvider, ProviderConfig } from '../types';
/** Internal API key for CCS-managed requests */
export declare const CCS_INTERNAL_API_KEY = "ccs-internal-managed";
/** Simple secret key for Control Panel login (user-facing) */
export declare const CCS_CONTROL_PANEL_SECRET = "ccs";
/**
 * Config version - bump when config format changes to trigger regeneration
 * v1: Initial config (port, auth-dir, api-keys only)
 * v2: Full-featured config with dashboard, quota mgmt, simplified key
 * v3: Logging disabled by default (user opt-in via ~/.ccs/config.yaml)
 * v4: Added Kiro (AWS) and GitHub Copilot providers
 * v5: Added disable-cooling: true for stability
 * v6: Added oauth-model-alias with Opus 4.6 support
 * v7: Added fork:true for Claude model aliases (keep both upstream and alias names)
 * v8: Added Gemini 3.1 preview aliases for provider routing compatibility
 * v9: Added resilient alias compatibility expansion and cache-assisted alias enrichment
 * v10: Migrated deprecated gemini-claude-* aliases to upstream claude-* aliases
 * v11: Migrated deprecated claude-sonnet-4-6-thinking aliases to claude-sonnet-4-6
 * v12: Removed denylisted Antigravity Claude 4.5 aliases
 * v13: Removed aggressive Gemini alias expansion to reduce model list noise in Control Panel
 * v14: Added Gemini 3.1 Flash Antigravity aliases for upcoming rollout compatibility
 * v15: Prune stale generated Antigravity Gemini preview aliases during regeneration
 * v16: Narrow stale Gemini alias cleanup to broad multi-version guessed ranges
 * v17: Persist routing.strategy from CCS unified config
 * v18: Persist routing.session-affinity and routing.session-affinity-ttl from CCS unified config
 * v19: Persist backend-aware management panel repository from CCS unified config
 */
export declare const CLIPROXY_CONFIG_VERSION = 19;
export declare const ORIGINAL_MANAGEMENT_PANEL_REPOSITORY = "https://github.com/router-for-me/Cli-Proxy-API-Management-Center";
export declare const PLUS_MANAGEMENT_PANEL_REPOSITORY = "https://github.com/kaitranntt/Cli-Proxy-API-Management-Center";
interface RegenerateConfigOptions {
    configPath?: string;
    authDir?: string;
}
/**
 * Get provider configuration
 * Model mappings are loaded from config/base-{provider}.settings.json
 */
export declare function getProviderConfig(provider: CLIProxyProvider): ProviderConfig;
export declare function getManagementPanelRepository(): string;
/**
 * Generate unified config.yaml file (supports all providers concurrently)
 * Only regenerates if config doesn't exist.
 * @returns Path to config file
 */
export declare function generateConfig(provider: CLIProxyProvider, port?: number): string;
/**
 * Parse user-added API keys from existing config content.
 * Extracts all keys except the internal CCS key for preservation.
 *
 * @param content - Existing config.yaml content
 * @returns Array of user-added API keys (excludes CCS_INTERNAL_API_KEY)
 */
export declare function parseUserApiKeys(content: string): string[];
/**
 * Force regenerate config.yaml with latest settings.
 * Preserves user-added API keys, claude-api-key section, and port settings.
 *
 * @param port - Default port to use if not found in existing config
 * @returns Path to new config file
 */
export declare function regenerateConfig(port?: number, options?: RegenerateConfigOptions): string;
/**
 * Check if config needs regeneration (version mismatch)
 * @returns true if config should be regenerated
 */
export declare function configNeedsRegeneration(port?: number): boolean;
/**
 * Check if config exists for port
 */
export declare function configExists(port?: number): boolean;
/**
 * Delete config file for specific port
 */
export declare function deleteConfigForPort(port: number): void;
/**
 * Delete config file (default port)
 */
export declare function deleteConfig(): void;
export {};
//# sourceMappingURL=generator.d.ts.map