import { LanguageModelV3 } from '@ai-sdk/provider'; import { createUIMessageStream, generateImage, Tool, GeneratedFile, ImageModel, UIMessageStreamWriter } from 'ai'; import { ToolBuiltInCommands, ProjectContext, ToolGenerateImageInput } from '../types'; import { AgentCodeOptions, CreateServerCommandToolOptions, CreateStreamResponseOptions, CreateToolStatusWriterOptions, CreateToolStatusWriterOptionsFactory, OnEndCallback, ToolStatusWriter } from './types'; interface BuildDefaultToolsOptions extends CreateStreamResponseOptions { writer: Parameters[0]['execute']>[0]['writer']; chatModel: LanguageModelV3; } /** * Create a tool status writer for sending progress updates from custom tools. */ export declare function createToolStatusWriter(options: CreateToolStatusWriterOptions): ToolStatusWriter; export declare function stripGeneratedWrapper(code: string): string; export declare function createTool(options: Tool): Tool; export declare function createTool(options: Tool): Tool; type GenerateImageCallOptions = Parameters[0]; type GenerateImageCallResult = Awaited>; type GenerateImageUsage = GenerateImageCallResult['usage']; type GenerateImageAdditionalOptions = Partial>; export interface ToolGenerateImageUploadProps { files: File[]; images: GeneratedFile[]; input: ToolGenerateImageInput; toolCallId: string; } export interface ToolGenerateImageUploadResult { urls: string[]; [key: string]: unknown; } export interface ToolGenerateImageOnStartProps { statusWriter?: ToolStatusWriter; input: ToolGenerateImageInput; toolCallId: string; options: GenerateImageCallOptions; } export interface ToolGenerateImageOnEndGenerationProps extends ToolGenerateImageOnStartProps { result: GenerateImageCallResult; usage: GenerateImageUsage; } export interface ToolGenerateImageOnEndProps extends ToolGenerateImageOnEndGenerationProps { uploadResult: string[] | ToolGenerateImageUploadResult; uploadedUrls: string[]; } export interface CreateToolGenerateImageOptions { model: ImageModel; uploadImages: (props: ToolGenerateImageUploadProps) => Promise; createToolStatusWriter?: (options: CreateToolStatusWriterOptionsFactory) => ToolStatusWriter; onStart?: (props: ToolGenerateImageOnStartProps) => Promise | GenerateImageAdditionalOptions | void; onEndGeneration?: (props: ToolGenerateImageOnEndGenerationProps) => Promise | void; onEnd?: (props: ToolGenerateImageOnEndProps) => Promise | void; generateImageOptions?: GenerateImageAdditionalOptions; abortSignal?: AbortSignal; defaultN?: number; sizes?: string[]; ratios?: string[]; maxImages?: number; description?: string; } export declare function createToolGenerateImage(options: CreateToolGenerateImageOptions): Tool; export interface CreateToolAgentCodeProps { writer: UIMessageStreamWriter; projectContext: ProjectContext; model: LanguageModelV3; abortSignal?: AbortSignal; streamOptions?: AgentCodeOptions['streamOptions']; postStream?: AgentCodeOptions['postStream']; onEnd?: OnEndCallback; } export declare const toolRemoveComponent: Tool<{ componentId: string; }, never>; export declare const toolMoveComponent: Tool<{ sourceId: string; targetId: string; targetIndex: number; }, never>; export declare const toolGetPageContent: Tool<{ pageId: string; }, never>; export declare const toolListPages: Tool, never>; export declare const toolAddComponent: Tool<{ name: string; plan: string; componentId: string; position: "before" | "beforeInside" | "afterInside" | "after"; imageUrls: string[]; }, never>; /** * Returns addComponent tool that runs on the server and uses the stream writer * to send data-tool-status (in-progress, streaming, done) for real-time UI updates. * @see https://ai-sdk.dev/docs/reference/ai-sdk-ui/create-ui-message-stream */ export declare function createToolAddComponent(props: CreateToolAgentCodeProps): Tool<{ name: string; plan: string; componentId: string; position: "before" | "beforeInside" | "afterInside" | "after"; imageUrls: string[]; }, Record>; export declare const toolEditComponent: Tool<{ plan: string; imageUrls: string[]; }, never>; /** * Returns editComponent tool that runs on the server and uses the stream writer * to send data-tool-status (in-progress, streaming, done) for real-time UI updates. * @see https://ai-sdk.dev/docs/reference/ai-sdk-ui/create-ui-message-stream */ export declare function createToolEditComponent(props: CreateToolAgentCodeProps): Tool<{ plan: string; imageUrls: string[]; }, Record>; export declare const toolAddNewPage: Tool<{ name: string; plan: string; imageUrls: string[]; }, never>; /** * Returns addNewPage tool that runs on the server and uses the stream writer * to send data-tool-status (in-progress, streaming, done) for real-time UI updates. * @see https://ai-sdk.dev/docs/reference/ai-sdk-ui/create-ui-message-stream */ export declare function createToolAddPage(props: CreateToolAgentCodeProps): Tool<{ name: string; plan: string; imageUrls: string[]; }, Record>; export declare const toolAddNewProjectPage: Tool<{ name: string; plan: string; }, never>; /** * Returns addNewProjectPage tool that runs on the server and uses the stream writer * to send data-tool-status (in-progress, streaming, done) for real-time UI updates. * @see https://ai-sdk.dev/docs/reference/ai-sdk-ui/create-ui-message-stream */ export declare function createToolAddProjectPage(props: CreateToolAgentCodeProps): Tool<{ name: string; plan: string; }, Record>; export declare const defaultCommandDescriptions: Partial>; export declare function createCommandTool(options?: CreateServerCommandToolOptions): Tool<{ commandId: ToolBuiltInCommands; }, never>; export declare function buildDefaultTools(options: BuildDefaultToolsOptions): Record; export {};