import { Tool } from "./Tool"; export type TextPart = { type: "text"; text: string; }; export type ImagePart = { type: "image"; image: string; mimeType?: string; }; export type ToolCallPart = { type: "tool-call"; id?: string; toolCallId: string; toolName: string; safetyChecks?: any[]; args: Record; }; export type ToolResultPart = { type: "tool-result"; toolCallId: string; toolName: string; result: any; isError?: boolean; }; export type ReasoningPart = { type: "reasoning"; id?: string; reasoning: string; signature?: string; instructions?: string; }; export type UserMessage = { role: "user"; content: (TextPart | ImagePart)[]; }; export type AssistantMessage = { role: "assistant"; responseId?: string; content: (TextPart | ToolCallPart | ReasoningPart)[]; }; export type ToolMessage = { role: "tool"; content: ToolResultPart[]; }; export type Message = UserMessage | AssistantMessage | ToolMessage; export type Model = { provider: "anthropic" | "openai" | "herd"; name: string; apiKey?: string; }; export type TokenUsage = { promptTokens: number; completionTokens: number; totalTokens: number; }; export type FinishReason = "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown"; export type Step = { text: string; responseId?: string; reasoningParts?: ReasoningPart[]; toolCalls?: ToolCallPart[]; toolResults?: ToolResultPart[]; finishReason?: FinishReason; usage?: TokenUsage; }; export type SingleActRequest = { model: Model; system?: string; messages?: Message[]; tools?: Tool[]; temperature?: number; maxTokens?: number; }; export type SingleActResponse = { message: AssistantMessage; finishReason: FinishReason; usage?: TokenUsage; }; type ApiTextPart = { type: "text"; text: string; }; type ApiImagePart = { type: "image"; image: string; mime_type?: string; }; type ApiToolCallPart = { type: "tool-call"; id?: string; tool_call_id: string; tool_name: string; safety_checks?: any[]; args: Record; }; type ApiToolResultPart = { type: "tool-result"; tool_call_id: string; tool_name: string; result: any; is_error?: boolean; }; type ApiReasoningPart = { type: "reasoning"; id?: string; reasoning: string; signature?: string; instructions?: string; }; type ApiUserMessage = { role: "user"; content: (ApiTextPart | ApiImagePart)[]; }; type ApiAssistantMessage = { role: "assistant"; response_id?: string; content: (ApiTextPart | ApiToolCallPart | ApiReasoningPart)[]; }; type ApiToolMessage = { role: "tool"; content: ApiToolResultPart[]; }; type ApiMessage = ApiUserMessage | ApiAssistantMessage | ApiToolMessage; type ApiModel = { provider: "anthropic" | "openai" | "herd"; name: string; api_key?: string; }; type ApiTokenUsage = { prompt_tokens: number; completion_tokens: number; total_tokens: number; }; type ApiTool = Omit & { parameters: Record; }; export type ApiSingleActRequest = { model: ApiModel; system?: string; messages?: ApiMessage[]; tools?: ApiTool[]; temperature?: number; max_tokens?: number; }; export type ApiSingleActResponse = { message: ApiAssistantMessage; finish_reason: FinishReason; usage?: ApiTokenUsage; }; export type ActResponse = { messages: Message[]; steps: Step[]; text?: string; output?: T; usage?: TokenUsage; }; export declare function convertRequestToApi(request: SingleActRequest): ApiSingleActRequest; export declare function convertResponseToSdk(response: ApiSingleActResponse): SingleActResponse; export {};