import type { McpPromptConfig, McpResourceConfig } from './config';
import type { McpListedPrompt, McpListedResource, McpListedResourceTemplate, McpPromptContent, McpReadResourceContent } from './sdk-client';
import type { McpIdTransform } from './tool-names';
export type McpPromptResourceCatalogClient = Readonly<{
    listPrompts(): Promise<McpListedPrompt[]>;
    listResources(): Promise<McpListedResource[]>;
    listResourceTemplates(): Promise<McpListedResourceTemplate[]>;
    readResource(uri: string): Promise<McpReadResourceContent[]>;
}>;
export type McpPromptRenderClient = Readonly<{
    getPrompt(name: string, args: Record<string, string> | undefined): Promise<McpPromptContent>;
}>;
export type McpPromptCatalogEntry = Readonly<{
    id: string;
    serverId: string;
    name: string;
    title: string;
    description?: string;
    arguments?: ReadonlyArray<{
        name: string;
        description?: string;
        required?: boolean;
    }>;
}>;
export type McpResourceCatalogEntry = Readonly<{
    kind: 'resource';
    id: string;
    serverId: string;
    uri: string;
    name: string;
    description?: string;
    mimeType?: string;
}> | Readonly<{
    kind: 'resource_template';
    id: string;
    serverId: string;
    uriTemplate: string;
    variables: readonly string[];
    name: string;
    description?: string;
    mimeType?: string;
}>;
export type McpVirtualSkill = Readonly<{
    id: string;
    title: string;
    description: string;
    body: string;
    serverId: string;
    resourceId: string;
    uri: string;
    declaredAllowedTools?: ReadonlyArray<string>;
    userInvocable?: boolean;
    disableModelInvocation?: boolean;
}>;
export declare function unregisterMcpPromptResourceCatalog(serverId: string): void;
export declare function clearMcpPromptResourceCatalog(): void;
export declare function refreshMcpPromptResourceCatalog(params: {
    serverId: string;
    client: McpPromptResourceCatalogClient;
    transform: readonly McpIdTransform[];
    prompts: McpPromptConfig;
    resources: McpResourceConfig;
}): Promise<void>;
export declare function listMcpPrompts(): readonly McpPromptCatalogEntry[];
export declare function listMcpResources(): readonly McpResourceCatalogEntry[];
export declare function listMcpVirtualSkills(): readonly McpVirtualSkill[];
export declare function getMcpVirtualSkill(skillId: string): McpVirtualSkill | undefined;
export declare function getMcpResource(resourceId: string): McpResourceCatalogEntry | undefined;
export declare function getMcpPrompt(promptId: string): McpPromptCatalogEntry | undefined;
export declare function expandResourceTemplate(template: McpResourceCatalogEntry & {
    kind: 'resource_template';
}, args: Record<string, string>): string;
export declare function renderMcpPrompt(params: {
    serverId: string;
    client: McpPromptRenderClient;
    promptName: string;
    arguments?: Record<string, string>;
}): Promise<string>;
export declare function renderPromptContent(prompt: McpPromptContent): string;
export declare function renderResourceContent(contents: readonly McpReadResourceContent[]): string;
