import { Implementation, McpServer } from "@modelcontextprotocol/server";
import { ZodRawShape } from "zod/v3";
import { PromptMetadata } from "@/types/prompt";
import { ResourceCompletions, ResourceMetadata } from "@/types/resource";
import { ToolMetadata } from "@/types/tool";
import { PromptArgsRawShape } from "./prompts";
import { UserPromptHandler } from "./transformers/prompt";
import { UserResourceHandler } from "./transformers/resource";
import { UserToolHandler } from "./transformers/tool";
export type ToolFile = {
    metadata: ToolMetadata;
    schema: ZodRawShape;
    outputSchema?: ZodRawShape;
    default: UserToolHandler;
};
export type PromptFile = {
    metadata: PromptMetadata;
    schema: PromptArgsRawShape;
    default: UserPromptHandler;
};
export type ResourceFile = {
    metadata: ResourceMetadata;
    schema: ZodRawShape;
    complete?: ResourceCompletions;
    default: UserResourceHandler;
};
export declare const injectedTools: Record<string, () => Promise<ToolFile>>;
export declare const injectedPrompts: Record<string, () => Promise<PromptFile>>;
export declare const injectedResources: Record<string, () => Promise<ResourceFile>>;
export declare const INJECTED_CONFIG: Implementation & {
    instructions?: string;
};
export declare function configureServer(server: McpServer, toolModules: Map<string, ToolFile>, promptModules: Map<string, PromptFile>, resourceModules: Map<string, ResourceFile>): Promise<McpServer>;
export declare function loadTools(): Promise<Map<string, ToolFile>>;
export declare function loadPrompts(): Promise<Map<string, PromptFile>>;
export declare function loadResources(): Promise<Map<string, ResourceFile>>;
export declare function createServer(): Promise<McpServer>;
