import { EventEmitter } from 'events';
import { TCPMCPConfig } from '../config/tcp-config.js';
/**
 * Session statistics
 */
export interface SessionStats {
    totalRequests: number;
    successfulRequests: number;
    failedRequests: number;
    createdAt: number;
    lastActivity: number;
    authenticatedAt?: number;
    toolCallCount: number;
}
/**
 * Enhanced session management with security features
 */
export declare class SessionManager extends EventEmitter {
    private config;
    private rateLimitTrackers;
    private authAttemptTrackers;
    private sessionStats;
    private cleanupInterval;
    constructor(config: TCPMCPConfig);
    /**
     * Initialize session tracking for a new session
     */
    initializeSession(sessionId: string, remoteAddress?: string): void;
    /**
     * Check if an IP address is allowed to connect
     */
    isIPAllowed(remoteAddress?: string): boolean;
    /**
     * Check if authentication is allowed for an IP
     */
    isAuthAllowed(remoteAddress?: string): boolean;
    /**
     * Record an authentication attempt
     */
    recordAuthAttempt(remoteAddress?: string, success?: boolean): void;
    /**
     * Check rate limiting for a session
     */
    checkRateLimit(sessionId: string): boolean;
    /**
     * Record a request for rate limiting
     */
    recordRequest(sessionId: string, success?: boolean): void;
    /**
     * Record a tool call
     */
    recordToolCall(sessionId: string): void;
    /**
     * Record successful authentication
     */
    recordAuthentication(sessionId: string): void;
    /**
     * Check if a session has expired
     */
    isSessionExpired(sessionId: string): boolean;
    /**
     * Get session statistics
     */
    getSessionStats(sessionId: string): SessionStats | undefined;
    /**
     * Get all session statistics
     */
    getAllSessionStats(): Map<string, SessionStats>;
    /**
     * Clean up expired sessions and old data
     */
    cleanup(): void;
    /**
     * Remove session tracking
     */
    removeSession(sessionId: string): void;
    /**
     * Get security summary
     */
    getSecuritySummary(): {
        activeSessions: number;
        blockedIPs: number;
        totalAuthAttempts: number;
        rateLimitViolations: number;
    };
    /**
     * Basic CIDR check (simplified implementation)
     */
    private isIPInCIDR;
    /**
     * Destroy the session manager
     */
    destroy(): void;
}
//# sourceMappingURL=session-manager.d.ts.map