import type { CliProvider } from "./config.js";
import type { LlmProvider } from "./llm/model-id.js";
import type { ModelRequestOptions } from "./llm/model-options.js";
export type FixedModelSpec = {
    transport: "native";
    userModelId: string;
    llmModelId: string;
    provider: LlmProvider;
    openrouterProviders: string[] | null;
    forceOpenRouter: false;
    requiredEnv: "XAI_API_KEY" | "OPENAI_API_KEY" | "GEMINI_API_KEY" | "ANTHROPIC_API_KEY" | "Z_AI_API_KEY" | "NVIDIA_API_KEY" | "MINIMAX_API_KEY" | "GITHUB_TOKEN" | "OLLAMA_BASE_URL";
    openaiBaseUrlOverride?: string | null;
    forceChatCompletions?: boolean;
    requestOptions?: ModelRequestOptions;
} | {
    transport: "openrouter";
    userModelId: string;
    openrouterModelId: string;
    llmModelId: string;
    openrouterProviders: string[] | null;
    forceOpenRouter: true;
    requiredEnv: "OPENROUTER_API_KEY";
    requestOptions?: ModelRequestOptions;
} | {
    transport: "cli";
    userModelId: string;
    llmModelId: null;
    openrouterProviders: null;
    forceOpenRouter: false;
    requiredEnv: "CLI_CLAUDE" | "CLI_CODEX" | "CLI_GEMINI" | "CLI_AGENT" | "CLI_OPENCLAW" | "CLI_OPENCODE" | "CLI_COPILOT" | "CLI_AGY" | "CLI_PI";
    cliProvider: CliProvider;
    cliModel: string | null;
};
export type RequestedModel = {
    kind: "auto";
} | ({
    kind: "fixed";
} & FixedModelSpec);
export declare function resolveOpenAiFastModelId(modelId: string): {
    modelId: string;
    options: ModelRequestOptions;
} | null;
export declare function parseRequestedModelId(raw: string): RequestedModel;
