import type { IntegrationAuthType } from '@contractspec/lib.contracts-integrations/integrations';
import type { OperationSpecRegistry, PromptRegistry, ResourceRegistry } from '@contractspec/lib.contracts-spec';
import type { PresentationSpec } from '@contractspec/lib.contracts-spec/presentations';
import { Logger } from '@contractspec/lib.logger';
import { Elysia } from 'elysia';
export interface McpAuthValidationResult {
    valid: boolean;
    actor?: string;
    reason?: string;
}
interface McpHttpHandlerConfig {
    path: string;
    serverName: string;
    ops: OperationSpecRegistry;
    resources: ResourceRegistry;
    prompts: PromptRegistry;
    presentations?: PresentationSpec[];
    logger: Logger;
    /** Callback to validate auth credentials from the incoming request. */
    validateAuth?: (request: Request) => Promise<McpAuthValidationResult>;
    /** Auth methods this MCP handler requires callers to present. */
    requiredAuthMethods?: IntegrationAuthType[];
}
export declare function createMcpElysiaHandler({ logger, path, serverName, ops, resources, prompts, presentations, validateAuth, requiredAuthMethods, }: McpHttpHandlerConfig): Elysia<"", {
    decorator: {};
    store: {};
    derive: {};
    resolve: {};
}, {
    typebox: {};
    error: {};
}, {
    schema: {};
    standaloneSchema: {};
    macro: {};
    macroFn: {};
    parser: {};
    response: {};
}, {
    [x: string]: {
        [x: string]: {
            body: unknown;
            params: {};
            query: unknown;
            headers: unknown;
            response: {
                200: Response;
            };
        };
    };
}, {
    derive: {};
    resolve: {};
    schema: {};
    standaloneSchema: {};
    response: {};
}, {
    derive: {};
    resolve: {};
    schema: {};
    standaloneSchema: {};
    response: {};
}>;
export {};
