import type z from "zod"; export type Message = { role: "system" | "user" | "assistant" | "tool"; content: string; tool_calls?: ToolCall[]; tool_call_id?: string; name?: string; }; export type ToolCall = { id: string; type: "function"; function: { name: string; arguments: string; }; }; export type ModelOptions = Record; export type TimestampedSystemMessage = Message & { role: "system"; themeMeta?: { timestamp: string; }; }; export type TimestampedUserMessage = Message & { role: "user"; themeMeta?: { timestamp: string; }; }; export type TimestampedAssistantMessage = Message & { role: "assistant"; themeMeta?: { timestamp: string; }; }; export type TimestampedToolMessage = Message & { role: "tool"; themeMeta?: { timestamp: string; }; }; export type TimestampedMessage = TimestampedSystemMessage | TimestampedUserMessage | TimestampedAssistantMessage | TimestampedToolMessage; export type OllamaToolCall = ToolCall; export type OllamaToolResult = { toolName: string; toolCallId: string; input: TInput; result?: TResult; error?: string; }; export type PhasePurge = "tool-calls" | "all-tool-calls" | "previous-messages"; export type Tool = { name: string; description: string; parameters: z.ZodSchema; execute: (input: TInput) => Promise; }; export declare function tool(t: { name: string; description: string; parameters: z.ZodSchema; execute: (input: TInput) => Promise; }): Tool; type ToolFactoryConfig = { basePath: string; templateOptions?: Record; }; export type ToolFactory = (props: ToolFactoryConfig) => Tool; export interface Phase { name: Name; prompt: string; purge?: readonly PhasePurge[]; think?: "low" | "medium" | "high"; options?: Partial; responseSchema?: z.ZodSchema; tools?: Record; } export {}; //# sourceMappingURL=types.d.ts.map