import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { Logger } from "../utils/logger.js";
export declare enum TransportType {
    STDIO = "stdio",
    SSE = "sse",
    HTTP = "http",
    WEBSOCKET = "websocket",
    GRPC = "grpc"
}
export interface TransportConfig {
    type: TransportType;
    port?: number;
    host?: string;
    path?: string;
    cors?: {
        origin: string | string[];
        credentials?: boolean;
    };
    auth?: {
        type: "none" | "api-key" | "jwt";
        apiKey?: string;
        jwtSecret?: string;
    };
}
export declare abstract class BaseTransport {
    protected logger: Logger;
    protected server: Server;
    protected config: TransportConfig;
    constructor(server: Server, config: TransportConfig);
    abstract start(): Promise<void>;
    abstract stop(): Promise<void>;
    abstract isRunning(): boolean;
    protected validateAuth(headers: Record<string, string>): boolean;
}
export declare class StdioTransport extends BaseTransport {
    private transport;
    private running;
    constructor(server: Server, config: TransportConfig);
    start(): Promise<void>;
    stop(): Promise<void>;
    isRunning(): boolean;
}
//# sourceMappingURL=base.d.ts.map