import type Anthropic from "@anthropic-ai/sdk"; export type ModelProvider = "anthropic" | "openai"; export interface ModelInfo { id: string; name: string; maxOutputTokens: number; contextWindow: number; tier: "flagship" | "standard" | "fast"; provider: ModelProvider; } export declare const AVAILABLE_MODELS: ModelInfo[]; export declare const DEFAULT_MODEL = "claude-opus-4-6"; export declare function getModelInfo(modelId: string): ModelInfo | undefined; /** * Resolve which provider a model id belongs to. Falls back to id-prefix * heuristics so unlisted/custom model ids still route correctly: * - "claude*" → anthropic * - "gpt*", "o1/o3/o4*", "chatgpt*" → openai * Defaults to anthropic. */ export declare function getProviderForModel(modelId: string): ModelProvider; /** True for OpenAI reasoning models that reject temperature + use max_completion_tokens. */ export declare function isOpenAiReasoningModel(modelId: string): boolean; export declare function getDefaultMaxTokens(modelId: string): number; export interface ReplContext { cwd: string; pathwayFilePath: string | null; pathwayId: string | null; model: string; maxTokens: number; /** * Canonical conversation history, stored in Anthropic block format. * The OpenAI agent path translates this to/from OpenAI chat messages on * each turn so switching providers mid-session keeps one history. */ messages: Anthropic.MessageParam[]; /** Anthropic API key (Claude models). */ claudeApiKey: string; /** OpenAI API key (GPT / o-series models). Null until provided. */ openaiApiKey: string | null; blandAuthenticated: boolean; profile: string | null; } export interface SlashCommand { name: string; description: string; handler: (args: string, context: ReplContext) => Promise; } export interface ToolCallDisplay { name: string; args: Record; result?: string; isError?: boolean; } //# sourceMappingURL=types.d.ts.map