import { ProviderConfig } from '@majkapp/majk-chat-core';
export interface ProfileProviderConfig {
    openai?: {
        apiKey: string;
        organizationId?: string;
    };
    anthropic?: {
        apiKey: string;
    };
    'azure-openai'?: {
        apiKey: string;
        endpoint: string;
        deploymentName: string;
    };
    bedrock?: {
        accessKeyId?: string;
        secretAccessKey?: string;
        sessionToken?: string;
        region?: string;
        bearerToken?: string;
    };
}
export interface ProfileConfig {
    providers: ProfileProviderConfig;
}
export interface MagicChatConfig {
    profiles: Record<string, ProfileConfig>;
}
export interface ValidationResult {
    provider: string;
    profile: string;
    valid: boolean;
    error?: string;
    model?: string;
}
export interface DirectConfigOptions {
    setOpenaiKey?: string;
    openaiOrgId?: string;
    setAnthropicKey?: string;
    setAzureOpenaiKey?: string;
    azureOpenaiEndpoint?: string;
    azureOpenaiDeployment?: string;
    setBedrock?: boolean;
    awsAccessKeyId?: string;
    awsSecretAccessKey?: string;
    awsSessionToken?: string;
    awsRegion?: string;
    bedrockBearerToken?: string;
    profile?: string;
    skipValidation?: boolean;
}
export declare class ProfileConfigManager {
    private configPath;
    constructor(homeDir?: string);
    loadConfig(): Promise<MagicChatConfig>;
    saveConfig(config: MagicChatConfig): Promise<void>;
    getProfile(profileName?: string): Promise<ProfileConfig | null>;
    setProfile(profileName: string, profileConfig: ProfileConfig): Promise<void>;
    deleteProfile(profileName: string): Promise<boolean>;
    listProfiles(): Promise<string[]>;
    /**
     * Get provider credentials from profile for use with existing CredentialManager
     */
    getProviderCredentials(provider: string, profileName?: string): Promise<ProviderConfig | null>;
    /**
     * Interactive configuration for a provider
     */
    configureProvider(provider: string, profileName?: string, skipValidation?: boolean): Promise<void>;
    /**
     * Direct configuration without interaction
     */
    setDirectConfig(options: DirectConfigOptions): Promise<void>;
    private configureOpenAI;
    private configureAnthropic;
    private configureAzureOpenAI;
    private configureBedrock;
    /**
     * Validate provider configuration by making a test API call
     */
    private validateProvider;
    /**
     * Test all providers in a profile
     */
    testProfile(profileName: string): Promise<ValidationResult[]>;
    /**
     * Test specific provider in a profile
     */
    testProvider(provider: string, profileName?: string): Promise<ValidationResult>;
    /**
     * Test all profiles
     */
    testAllProfiles(): Promise<ValidationResult[]>;
}
//# sourceMappingURL=profile-config.d.ts.map