import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
export declare class McpSessionManager {
    private static instances;
    private client;
    private transport;
    private isConnected;
    private connectionPromise;
    private lastUsed;
    private readonly sessionId;
    private cleanupTimer;
    private static readonly SESSION_TIMEOUT;
    private static readonly CLEANUP_INTERVAL;
    private constructor();
    static getInstance(sessionId: string): McpSessionManager;
    static generateSessionId(connectionConfig: {
        connectionType: string;
        command?: string;
        args?: string[];
        env?: Record<string, string>;
        httpStreamUrl?: string;
        sseUrl?: string;
        headers?: Record<string, string>;
        timestamp?: number;
    }): string;
    connect(transport: Transport): Promise<Client>;
    private doConnect;
    getClient(): Promise<Client | null>;
    getClientSync(): Client | null;
    isSessionConnected(): boolean;
    private validateConnection;
    static createNewSession(connectionConfig: any): string;
    cleanup(): Promise<void>;
    private startCleanupTimer;
    private checkAndCleanupExpiredSessions;
    static cleanupAllSessions(): Promise<void>;
    static getSessionStats(): {
        totalSessions: number;
        connectedSessions: number;
        sessions: Array<{
            sessionId: string;
            isConnected: boolean;
            lastUsed: Date;
            age: number;
        }>;
    };
}
