export interface Resource {
    uri: string;
    name: string;
    description?: string;
    mimeType?: string;
    metadata?: Record<string, unknown>;
}
export interface ResourceTemplate {
    uriTemplate: string;
    name: string;
    description?: string;
    mimeType?: string;
}
export interface ListResourcesResult {
    resources: Resource[];
    nextCursor?: string;
}
export interface ReadResourceResult {
    contents: Array<{
        uri: string;
        mimeType?: string;
        text?: string;
        blob?: string;
    }>;
}
export interface PromptTemplate {
    name: string;
    description?: string;
    arguments?: Array<{
        name: string;
        description?: string;
        required?: boolean;
    }>;
}
export interface GetPromptResult {
    description?: string;
    messages: Array<{
        role: 'user' | 'assistant';
        content: {
            type: 'text' | 'image' | 'resource';
            text?: string;
            data?: string;
            mimeType?: string;
            resource?: {
                uri: string;
            };
        };
    }>;
}
export interface SamplingRequest {
    messages: Array<{
        role: 'user' | 'assistant' | 'system';
        content: {
            type: 'text';
            text: string;
        };
    }>;
    modelPreferences?: {
        hints?: Array<{
            name?: string;
        }>;
        costPriority?: number;
        speedPriority?: number;
        intelligencePriority?: number;
    };
    systemPrompt?: string;
    includeContext?: 'none' | 'thisServer' | 'allServers';
    temperature?: number;
    maxTokens?: number;
    stopSequences?: string[];
    metadata?: Record<string, unknown>;
}
export interface SamplingResult {
    role: 'assistant';
    content: {
        type: 'text';
        text: string;
    };
    model: string;
    stopReason?: 'endTurn' | 'stopSequence' | 'maxTokens';
    tokenUsage?: {
        inputTokens: number;
        outputTokens: number;
    };
}
export interface ServerCapabilities {
    tools?: Record<string, unknown>;
    resources?: {
        subscribe?: boolean;
        listChanged?: boolean;
    };
    prompts?: {
        listChanged?: boolean;
    };
    logging?: Record<string, unknown>;
}
export interface ServerInfo {
    name: string;
    version: string;
    protocolVersion: string;
    capabilities: ServerCapabilities;
}
//# sourceMappingURL=mcp.d.ts.map