import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import express from 'express';
import { HealthService } from '../services/health-service.js';
export interface HttpServerConfig {
    port: number;
    host: string;
    enableCors?: boolean;
    sessionManagement?: boolean;
    requestLogging?: {
        enabled: boolean;
        level?: 'info' | 'debug' | 'verbose';
        includeBody?: boolean;
        includeHeaders?: boolean;
    };
}
export declare class HttpTransportServer {
    private config;
    private expressApp;
    private httpServer?;
    private activeTransports;
    private mcpServerFactory;
    private healthService?;
    constructor(config: HttpServerConfig, mcpServerFactory: () => McpServer, healthService?: HealthService);
    /**
     * Set up Express middleware
     */
    private setupMiddleware;
    /**
     * Set up request logging middleware
     */
    private setupRequestLogging;
    /**
     * Set up CORS middleware
     */
    private setupCors;
    /**
     * Set up Express routes
     */
    private setupRoutes;
    /**
     * Handle MCP requests (GET, POST, DELETE)
     */
    private handleMcpRequest;
    /**
     * Get existing transport or send error response
     */
    private getExistingTransport;
    /**
     * Create new transport for initialization
     */
    private createNewTransport;
    /**
     * Send bad request response
     */
    private sendBadRequestResponse;
    /**
     * Handle request errors
     */
    private handleRequestError;
    /**
     * Set up observability middleware (lite mode - no metrics/telemetry)
     */
    private setupObservabilityMiddleware;
    /**
     * Start the HTTP server
     */
    start(): Promise<void>;
    /**
     * Stop the HTTP server
     */
    stop(): Promise<void>;
    /**
     * Get the Express app instance
     */
    getExpressApp(): express.Application;
    /**
     * Get active transport sessions
     */
    getActiveSessions(): string[];
    /**
     * Get session count
     */
    getSessionCount(): number;
    /**
     * Get server status information
     */
    getServerStatus(): {
        running: boolean;
        activeSessions: number;
        port?: number;
        host?: string;
    };
}
//# sourceMappingURL=http-transport-server.d.ts.map