export interface SessionInfo {
    sessionId: string;
    transportType: 'stdio' | 'http';
    createdAt: Date;
    lastActivity: Date;
    metadata?: Record<string, unknown>;
}
export declare class TransportSessionManager {
    private sessions;
    private sessionTimeout;
    constructor(sessionTimeoutMs?: number);
    /**
     * Create a new session
     */
    createSession(sessionId: string, transportType: 'stdio' | 'http', metadata?: Record<string, unknown>): void;
    /**
     * Update session activity
     */
    updateSessionActivity(sessionId: string): void;
    /**
     * Remove a session
     */
    removeSession(sessionId: string): boolean;
    /**
     * Get session information
     */
    getSession(sessionId: string): SessionInfo | undefined;
    /**
     * Get all active sessions
     */
    getAllSessions(): SessionInfo[];
    /**
     * Get sessions by transport type
     */
    getSessionsByType(transportType: 'stdio' | 'http'): SessionInfo[];
    /**
     * Get session count
     */
    getSessionCount(): number;
    /**
     * Get session count by transport type
     */
    getSessionCountByType(transportType: 'stdio' | 'http'): number;
    /**
     * Check if a session exists
     */
    hasSession(sessionId: string): boolean;
    /**
     * Clean up expired sessions
     */
    cleanupExpiredSessions(): number;
    /**
     * Get session statistics
     */
    getSessionStats(): {
        total: number;
        byType: Record<string, number>;
        oldestSession?: Date;
        newestSession?: Date;
        averageAge: number;
    };
    /**
     * Start the cleanup interval
     */
    private startCleanupInterval;
    /**
     * Set session metadata
     */
    setSessionMetadata(sessionId: string, metadata: Record<string, unknown>): boolean;
    /**
     * Get session metadata
     */
    getSessionMetadata(sessionId: string): Record<string, unknown> | undefined;
}
//# sourceMappingURL=transport-session-manager.d.ts.map