export declare const AI_PROVIDER_FAMILY_IDS: readonly ["gemini-api-key", "codex-api-key", "claude-api-key", "vertex-api-key", "openai-compatibility"];
export type AiProviderFamilyId = (typeof AI_PROVIDER_FAMILY_IDS)[number];
export interface AiProviderModelAlias {
    name: string;
    alias: string;
}
export interface AiProviderApiKeyEntry {
    id?: string;
    'api-key': string;
    'base-url'?: string;
    'proxy-url'?: string;
    prefix?: string;
    headers?: Record<string, string>;
    'excluded-models'?: string[];
    models?: AiProviderModelAlias[];
}
export interface OpenAICompatApiKeyEntry {
    'api-key': string;
    'proxy-url'?: string;
}
export interface OpenAICompatEntry {
    id?: string;
    name: string;
    'base-url': string;
    headers?: Record<string, string>;
    'api-key-entries': OpenAICompatApiKeyEntry[];
    models?: AiProviderModelAlias[];
}
export interface AiProviderFamilyDefinition {
    id: AiProviderFamilyId;
    displayName: string;
    description: string;
    authMode: 'api-key' | 'hybrid' | 'connector';
    supportsNamedEntries: boolean;
    routePath: string;
}
export interface AiProviderEntryView {
    id: string;
    index: number;
    name?: string;
    label: string;
    baseUrl?: string;
    proxyUrl?: string;
    prefix?: string;
    headers: Array<{
        key: string;
        value: string;
    }>;
    excludedModels: string[];
    models: AiProviderModelAlias[];
    apiKeyMasked?: string;
    apiKeysMasked?: string[];
    secretConfigured: boolean;
}
export interface AiProviderFamilyState {
    id: AiProviderFamilyId;
    displayName: string;
    description: string;
    authMode: 'api-key' | 'hybrid' | 'connector';
    routePath: string;
    status: 'empty' | 'partial' | 'ready';
    supportsNamedEntries: boolean;
    entries: AiProviderEntryView[];
}
export interface AiProvidersSourceSummary {
    mode: 'local' | 'remote';
    label: string;
    target: string;
    managementAuth: 'configured' | 'fallback' | 'missing';
}
export interface ListAiProvidersResult {
    source: AiProvidersSourceSummary;
    families: AiProviderFamilyState[];
}
export interface UpsertAiProviderEntryInput {
    name?: string;
    baseUrl?: string;
    proxyUrl?: string;
    prefix?: string;
    headers?: Array<{
        key: string;
        value: string;
    }>;
    excludedModels?: string[];
    models?: AiProviderModelAlias[];
    apiKey?: string;
    apiKeys?: string[];
    preserveSecrets?: boolean;
}
export interface LocalAiProviderConfig {
    'gemini-api-key'?: AiProviderApiKeyEntry[];
    'codex-api-key'?: AiProviderApiKeyEntry[];
    'claude-api-key'?: AiProviderApiKeyEntry[];
    'vertex-api-key'?: AiProviderApiKeyEntry[];
    'openai-compatibility'?: OpenAICompatEntry[];
    [key: string]: unknown;
}
export declare const AI_PROVIDER_FAMILY_DEFINITIONS: Record<AiProviderFamilyId, AiProviderFamilyDefinition>;
//# sourceMappingURL=types.d.ts.map