import { CompletionResult } from '../prompts/BasePrompt.js'; import { MCPIcon, ContentAnnotations } from '../tools/BaseTool.js'; export type ResourceContent = { uri: string; mimeType?: string; text?: string; blob?: string; }; export type ResourceDefinition = { uri: string; name: string; description?: string; mimeType?: string; title?: string; icons?: MCPIcon[]; size?: number; annotations?: ContentAnnotations; }; export type ResourceTemplateDefinition = { uriTemplate: string; name: string; description?: string; mimeType?: string; title?: string; icons?: MCPIcon[]; }; export interface ResourceProtocol { uri: string; name: string; description?: string; mimeType?: string; resourceDefinition: ResourceDefinition; templateDefinition?: ResourceTemplateDefinition; read(): Promise; subscribe?(): Promise; unsubscribe?(): Promise; complete?(argumentName: string, value: string): Promise; } export declare abstract class MCPResource implements ResourceProtocol { abstract uri: string; abstract name: string; description?: string; mimeType?: string; protected title?: string; protected icons?: MCPIcon[]; protected size?: number; protected resourceAnnotations?: ContentAnnotations; protected template?: { uriTemplate: string; description?: string; }; get resourceDefinition(): ResourceDefinition; get templateDefinition(): ResourceTemplateDefinition | undefined; abstract read(): Promise; complete(argumentName: string, value: string): Promise; subscribe?(): Promise; unsubscribe?(): Promise; protected fetch(url: string, init?: RequestInit): Promise; }