import type { CliProvider } from "../config.js";
import type { ModelRequestOptions } from "./model-options.js";
import type { OpenAiClientConfig } from "./providers/types.js";
export type GatewayProvider = "xai" | "openai" | "google" | "anthropic" | "zai" | "nvidia" | "minimax" | "github-copilot" | "ollama";
export type RequiredModelEnv = "XAI_API_KEY" | "OPENAI_API_KEY" | "NVIDIA_API_KEY" | "GEMINI_API_KEY" | "ANTHROPIC_API_KEY" | "OPENROUTER_API_KEY" | "Z_AI_API_KEY" | "MINIMAX_API_KEY" | "GITHUB_TOKEN" | "OLLAMA_BASE_URL" | "CLI_CLAUDE" | "CLI_CODEX" | "CLI_GEMINI" | "CLI_AGENT" | "CLI_OPENCLAW" | "CLI_OPENCODE" | "CLI_COPILOT" | "CLI_AGY" | "CLI_PI";
export type ProviderExecution = "simple" | "google" | "anthropic" | "openai-http" | "openai-compatible";
export type GatewayProviderProfile = {
    requiredEnv: RequiredModelEnv;
    execution: ProviderExecution;
    supportsDocuments: boolean;
    supportsStreaming: boolean;
    supportsVideoUnderstanding: boolean;
    defaultBaseUrl?: string;
    forceChatCompletions?: boolean;
};
export declare const DEFAULT_OLLAMA_BASE_URL = "http://localhost:11434/v1";
export declare const DEFAULT_MINIMAX_BASE_URL = "https://api.minimax.io/v1";
export type ProviderRuntimeBindings = {
    apiKeys: Partial<Record<GatewayProvider, string | null>>;
    baseUrls: Partial<Record<GatewayProvider, string | null>>;
    openaiUseChatCompletions?: boolean;
};
export type ProviderOpenAiOverrides = {
    openaiApiKeyOverride?: string | null;
    openaiBaseUrlOverride?: string | null;
    forceChatCompletions?: boolean;
};
export declare function resolveProviderOpenAiOverrides({ provider, runtime, baseUrlOverride, }: {
    provider: GatewayProvider;
    runtime: ProviderRuntimeBindings;
    baseUrlOverride?: string | null;
}): ProviderOpenAiOverrides;
type CliRequiredModelEnv = Extract<RequiredModelEnv, `CLI_${string}`>;
export type CliProviderProfile = {
    requiredEnv: CliRequiredModelEnv;
    defaultModel: string | null;
    missingBinaryLabel: string;
    installLabel: string;
    pathEnv: string;
};
export declare const DEFAULT_CLI_MODELS: Record<CliProvider, string | null>;
export declare const DEFAULT_AUTO_CLI_ORDER: CliProvider[];
export declare function parseCliProviderName(raw: string): CliProvider | null;
export declare function getCliProviderProfile(provider: CliProvider): CliProviderProfile;
export declare function requiredEnvForCliProvider(provider: CliProvider): RequiredModelEnv;
export declare function cliProviderForRequiredEnv(requiredEnv: RequiredModelEnv): CliProvider | null;
export declare function formatMissingCliModelError({ requiredEnv, userModelId, }: {
    requiredEnv: RequiredModelEnv;
    userModelId: string;
}): string | null;
export declare function isGatewayProvider(provider: string): provider is GatewayProvider;
export declare function getGatewayProviderProfile(provider: GatewayProvider): GatewayProviderProfile;
export declare function requiredEnvForGatewayProvider(provider: GatewayProvider): RequiredModelEnv;
export declare function gatewayProviderForRequiredEnv(requiredEnv: RequiredModelEnv): GatewayProvider | null;
export declare function supportsDocumentAttachments(provider: GatewayProvider): boolean;
export declare function supportsStreaming(provider: GatewayProvider): boolean;
export declare function isOpenAiCompatibleProvider(provider: GatewayProvider): provider is "zai" | "nvidia" | "minimax" | "ollama";
export declare function isVideoUnderstandingCapableProvider(provider: GatewayProvider): boolean;
export declare function envHasRequiredKey(env: Record<string, string | undefined>, requiredEnv: RequiredModelEnv): boolean;
export declare function resolveRequiredEnvForModelId(modelId: string): RequiredModelEnv;
export declare function isVideoUnderstandingCapableModelId(modelId: string): boolean;
export declare function resolveOpenAiCompatibleClientConfigForProvider({ provider, openaiApiKey, openrouterApiKey, forceOpenRouter, openaiBaseUrlOverride, forceChatCompletions, requestOptions, }: {
    provider: "openai" | "zai" | "nvidia" | "minimax" | "github-copilot" | "ollama";
    openaiApiKey: string | null;
    openrouterApiKey: string | null;
    forceOpenRouter?: boolean;
    openaiBaseUrlOverride?: string | null;
    forceChatCompletions?: boolean;
    requestOptions?: ModelRequestOptions;
}): OpenAiClientConfig;
export {};
