import { type NanoModelPricing } from "./pricing.js"; import type { NanoModelAdapter, NanoModelMessage } from "./types.js"; export type MockModelOptions = { name?: string; response?: string | ((messages: NanoModelMessage[]) => string); pricing?: Partial; costPer1kInputTokensUsd?: number; costPer1kOutputTokensUsd?: number; }; export declare function createMockModel(options?: MockModelOptions): NanoModelAdapter; export type OpenAIResponsesClient = { responses: { create(input: { model: string; input: Array<{ role: "system" | "user" | "assistant"; content: string; }>; max_output_tokens?: number; reasoning?: Record; metadata?: Record; }): Promise<{ output_text?: string; usage?: { input_tokens?: number; output_tokens?: number; total_tokens?: number; }; [key: string]: unknown; }>; }; }; export type OpenAIModelOptions = { model: string; reasoning?: Record; metadata?: Record; pricing?: Partial; costPer1kInputTokensUsd?: number; costPer1kOutputTokensUsd?: number; }; export declare function createOpenAIResponsesModel(client: OpenAIResponsesClient, options: OpenAIModelOptions): NanoModelAdapter; export type OpenAICompatibleChatClient = { chat: { completions: { create(input: { model: string; messages: Array<{ role: "system" | "user" | "assistant" | "tool"; content: string; name?: string; }>; max_tokens?: number; temperature?: number; metadata?: Record; }): Promise<{ choices?: Array<{ message?: { content?: string | null; }; }>; usage?: { prompt_tokens?: number; completion_tokens?: number; total_tokens?: number; }; [key: string]: unknown; }>; }; }; }; export type OpenAICompatibleModelOptions = { model: string; temperature?: number; metadata?: Record; pricing?: Partial; }; export declare function createOpenAICompatibleChatModel(client: OpenAICompatibleChatClient, options: OpenAICompatibleModelOptions): NanoModelAdapter; export type AnthropicMessagesClient = { messages: { create(input: { model: string; max_tokens: number; system?: string; messages: Array<{ role: "user" | "assistant"; content: string; }>; metadata?: Record; }): Promise<{ content?: Array<{ type?: string; text?: string; }>; usage?: { input_tokens?: number; output_tokens?: number; }; [key: string]: unknown; }>; }; }; export type AnthropicModelOptions = { model: string; maxOutputTokens?: number; metadata?: Record; pricing?: Partial; }; export declare function createAnthropicMessagesModel(client: AnthropicMessagesClient, options: AnthropicModelOptions): NanoModelAdapter;