import { type DeepSeekConfigPathOptions } from "./deepseek/deepseek-config.js";
import type { ProviderAuthMethod, ProviderId, ProviderKind, ProviderModelRef, ProviderPlanKind, ProviderPolicy, ProviderProfileType, ProviderWireApi } from "./types.js";
export declare const KNOWN_PROVIDER_IDS: readonly ["mimo", "kimi", "deepseek", "qwen", "codex", "openrouter"];
export declare const QWEN_DASHSCOPE_COMPAT_BASE_URL = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1";
export declare const OPENROUTER_COMPAT_BASE_URL = "https://openrouter.ai/api/v1";
export interface ProviderRegistryEntry {
    id: ProviderId;
    enabled: boolean;
    kind: ProviderKind;
    baseUrl?: string;
    apiKeyEnv?: string;
    defaultModel: string;
    aliases: Record<string, string>;
    capabilities: string[];
    wireApi?: ProviderWireApi;
    auth?: {
        method: ProviderAuthMethod;
    };
    profileType?: ProviderProfileType;
    planKind?: ProviderPlanKind;
    routing?: "runtime" | "advisory" | "external-cli";
    headers?: Record<string, string>;
    contextWindow?: number;
    reservedOutputTokens?: number;
    configured: boolean;
    disabledReason?: string;
    updatedAt?: string;
}
export interface ProviderDoctorStatus {
    provider: ProviderId;
    enabled: boolean;
    available: boolean;
    kind: ProviderKind;
    model: string;
    baseUrl?: string;
    apiKeyEnv?: string;
    apiKeySet?: boolean;
    codexCliAvailable?: boolean;
    authority: ProviderModelRef["authority"];
    capabilities: string[];
    wireApi?: ProviderWireApi;
    authMethod?: ProviderAuthMethod;
    profileType?: ProviderProfileType;
    planKind?: ProviderPlanKind;
    headers?: Record<string, string>;
    fallbackProvider: ProviderId;
    reason?: string;
}
export interface ProviderConfigSetInput {
    model?: string;
    baseUrl?: string;
    apiKeyEnv?: string;
    kind?: ProviderKind;
    enabled?: boolean;
    authMethod?: ProviderAuthMethod;
}
export declare function normalizeProviderPolicy(value: string | undefined): ProviderPolicy;
export declare function normalizeProviderId(value: string | undefined): ProviderId | "auto";
export interface ProviderModelArg {
    provider?: ProviderId;
    model?: string;
    thinkingLevel?: string;
}
export declare function parseProviderModelArg(value: string | undefined): ProviderModelArg;
export declare function normalizeModelAlias(value: string): string;
export declare function readProviderRegistry(options?: DeepSeekConfigPathOptions): Promise<ProviderRegistryEntry[]>;
export declare function getProviderRegistryEntry(provider: ProviderId, options?: DeepSeekConfigPathOptions): Promise<ProviderRegistryEntry>;
export declare function setProviderConfig(provider: ProviderId, input: ProviderConfigSetInput, options?: DeepSeekConfigPathOptions): Promise<ProviderRegistryEntry>;
export declare function setProviderEnabled(provider: ProviderId, enabled: boolean, reason?: string, options?: DeepSeekConfigPathOptions): Promise<ProviderRegistryEntry>;
export declare function resolveProviderModelRef(entry: ProviderRegistryEntry, requestedModel: string | undefined, authority: ProviderModelRef["authority"]): ProviderModelRef;
export declare function providerDoctorStatus(provider: ProviderId, options?: DeepSeekConfigPathOptions & {
    env?: NodeJS.ProcessEnv;
}): Promise<ProviderDoctorStatus>;
export interface ProviderDefaults {
    provider: ProviderId;
    authorityProvider: ProviderId;
    model: string;
}
export interface UserModelAliasResolution {
    input: string;
    provider?: ProviderId;
    model: string;
    source: "user-alias" | "provider-alias" | "literal";
}
export declare function listUserModelAliases(options?: DeepSeekConfigPathOptions): Promise<Record<string, string>>;
export declare function setUserModelAlias(alias: string, target: string, options?: DeepSeekConfigPathOptions): Promise<{
    key: string;
    value: string;
    aliases: Record<string, string>;
    configPath: string;
}>;
export declare function removeUserModelAlias(alias: string, options?: DeepSeekConfigPathOptions): Promise<{
    key: string;
    removed: boolean;
    aliases: Record<string, string>;
    configPath: string;
}>;
export declare function resolveUserModelAlias(input: string, options?: DeepSeekConfigPathOptions): Promise<UserModelAliasResolution>;
export declare function readProviderDefaults(options?: DeepSeekConfigPathOptions): Promise<ProviderDefaults>;
export declare function setProviderDefaults(defaults: Partial<ProviderDefaults>, options?: DeepSeekConfigPathOptions): Promise<{
    defaults: ProviderDefaults;
    configPath: string;
}>;
