import { z } from "zod"; import { MCPIcon } from '../tools/BaseTool.js'; export type CompletionResult = { values: string[]; total?: number; hasMore?: boolean; }; export type PromptArgumentSchema = { [K in keyof T]: { type: z.ZodType; description: string; required?: boolean; }; }; export type PromptArguments> = { [K in keyof T]: z.infer; }; export interface PromptProtocol { name: string; description: string; promptDefinition: { name: string; description: string; arguments?: Array<{ name: string; description: string; required?: boolean; }>; title?: string; icons?: MCPIcon[]; }; getMessages(args?: Record): Promise>; complete?(argumentName: string, value: string, context?: Record): Promise; } export declare abstract class MCPPrompt = {}> implements PromptProtocol { abstract name: string; abstract description: string; protected abstract schema: PromptArgumentSchema; protected title?: string; protected icons?: MCPIcon[]; get promptDefinition(): { icons?: MCPIcon[] | undefined; title?: string | undefined; name: string; description: string; arguments: { name: string; description: any; required: any; }[]; }; protected abstract generateMessages(args: TArgs): Promise>; getMessages(args?: Record): Promise<{ role: string; content: { type: string; text: string; resource?: { uri: string; text: string; mimeType: string; }; }; }[]>; complete(argumentName: string, value: string, context?: Record): Promise; protected fetch(url: string, init?: RequestInit): Promise; }