/** * Structured LLM Client - Multi-Provider Support * * Supports both Anthropic and Google Gemini providers with structured outputs * and tool use. Provider is automatically selected based on the model name. * * This file serves as the main entry point, maintaining backward compatibility * while using the new provider-based architecture internally. */ import { z } from "zod"; import { type ZodToolDefinition, type AgentRunOptions, type StructuredGenerateResult, type AnthropicModel, type GoogleModel } from "./structured-llm"; export type SupportedAgentModel = AnthropicModel | GoogleModel; export { APP_GENERATION_MODELS, type AppGenerationModel } from "../models"; /** * Creates a tool definition from a Zod schema. * Returns both the tool metadata and the execute function. */ export declare function zodTool(options: { name: string; description: string; inputSchema: T; run: (args: z.infer) => string | Promise; }): ZodToolDefinition; /** * Runs an agent loop with tools, returning structured output. * Automatically selects provider based on the model name. * * @param prompt - The initial user prompt * @param options - Configuration including tools, output schema, and model * @returns The structured output and usage statistics * * @example * ```typescript * const result = await runAgentWithStructuredOutput( * "Generate an app with a todo list", * { * model: "claude-opus-4-5", // or "gemini-3-pro-preview" * tools: [listComponentsTool, getComponentInfoTool], * outputSchema: AppFilesOutputSchema, * system: "You are an expert React developer...", * } * ); * ``` */ export declare function runAgentWithStructuredOutput(prompt: string, options: AgentRunOptions & { model?: SupportedAgentModel; }): Promise>; export declare const GeneratedFileSchema: z.ZodObject<{ filename: z.ZodString; content: z.ZodString; }, "strip", z.ZodTypeAny, { content: string; filename: string; }, { content: string; filename: string; }>; export declare const AppFilesOutputSchema: z.ZodObject<{ files: z.ZodArray, "many">; }, "strip", z.ZodTypeAny, { files: { content: string; filename: string; }[]; }, { files: { content: string; filename: string; }[]; }>; export type GeneratedFile = z.infer; export type AppFilesOutput = z.infer; export { type BaseZodToolDefinition, type ProgressEvent, type ZodToolDefinition, type AgentRunOptions, type StructuredGenerateResult, type AnthropicModel, type GoogleModel, } from "./structured-llm"; //# sourceMappingURL=structured-llm-client.d.ts.map