import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js"; import type { McpServerApp } from "../McpServerApp.js"; export interface SessionContext { id: string; apiKey: string; transport: StreamableHTTPServerTransport; mcpApp: McpServerApp; connectedAt: Date; lastActivityAt: Date; requestCount: number; } export declare class SessionManager { private sessions; private keyConnectionCount; private cleanupInterval; private maxPerKey; private idleTimeoutMs; constructor(opts: { maxPerKey: number; idleTimeoutMs: number; cleanupIntervalMs: number; }); canConnect(apiKey: string): boolean; createSession(apiKey: string, transport: StreamableHTTPServerTransport, mcpApp: McpServerApp): SessionContext; touchSession(sessionId: string): void; removeSession(sessionId: string): void; private cleanupStaleSessions; getStats(): { activeSessions: number; connectionsByKey: Record; }; shutdown(): void; }