import { z } from "zod";
/**
 * Transport types supported by the MCP server
 */
export type TransportType = "stdio" | "streamable-http";
/**
 * Configuration for stdio transport
 */
export interface StdioTransportConfig {
    type: "stdio";
}
/**
 * Configuration for Streamable HTTP transport
 *
 * Protocol revision 2026-07-28 removed protocol-level sessions and the
 * `Mcp-Session-Id` header, so the transport is stateless: there is no session
 * configuration anymore. Each request is served by a fresh server instance.
 */
export interface StreamableHttpTransportConfig {
    type: "streamable-http";
    /**
     * Port to bind the HTTP server to
     */
    port: number;
    /**
     * Host address to bind the HTTP server to (default: '127.0.0.1')
     */
    host: string;
    /**
     * MCP endpoint path (default: '/mcp')
     */
    endpoint: string;
}
/**
 * Union type for all transport configurations
 */
export type TransportConfig = StdioTransportConfig | StreamableHttpTransportConfig;
/**
 * Zod schema for TransportConfig validation (discriminated union)
 */
export declare const TransportConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    type: z.ZodLiteral<"stdio">;
}, z.core.$strict>, z.ZodObject<{
    endpoint: z.ZodString;
    host: z.ZodString;
    port: z.ZodNumber;
    type: z.ZodLiteral<"streamable-http">;
}, z.core.$strict>], "type">;
/**
 * Type guard to check if config is StdioTransportConfig
 */
export declare function isStdioTransportConfig(config: TransportConfig): config is StdioTransportConfig;
/**
 * Type guard to check if config is StreamableHttpTransportConfig
 */
export declare function isStreamableHttpTransportConfig(config: TransportConfig): config is StreamableHttpTransportConfig;
/**
 * Default values for StreamableHttpTransportConfig (excluding required fields)
 */
export declare const DEFAULT_HTTP_CONFIG: {
    readonly endpoint: "/mcp";
    readonly host: "127.0.0.1";
};
