export interface SessionInfo { sessionId: string; userId: string; connectionIds: Set; createdAt: Date; lastActivity: Date; roles?: string[]; permissions?: string[]; scopes?: string[]; metadata?: Record; state: SessionState; } export declare enum SessionState { CREATING = "creating", ACTIVE = "active", IDLE = "idle", EXPIRING = "expiring", TERMINATED = "terminated" } export interface SessionStats { totalSessions: number; activeSessions: number; totalUsers: number; averageConnectionsPerSession: number; sessionsPerUser: Array<{ userId: string; sessionCount: number; }>; sessionsByState: Record; } export type SessionEvent = { type: 'created'; session: SessionInfo; } | { type: 'updated'; session: SessionInfo; changes: Partial; } | { type: 'terminated'; session: SessionInfo; reason: string; } | { type: 'state-changed'; sessionId: string; from: SessionState; to: SessionState; } | { type: 'connection-added'; sessionId: string; connectionId: string; } | { type: 'connection-removed'; sessionId: string; connectionId: string; } | { type: 'cleanup-completed'; count: number; } | { type: 'limit-exceeded'; userId: string; limit: number; }; export interface SessionPersistenceData { sessionId: string; userId: string; connectionIds: string[]; createdAt: string; lastActivity: string; roles?: string[]; permissions?: string[]; scopes?: string[]; metadata?: Record; state: SessionState; } export interface SessionValidationResult { valid: boolean; reason?: string; sessionInfo?: SessionInfo; } export interface SessionCreationOptions { roles?: string[]; permissions?: string[]; scopes?: string[]; metadata?: Record; initialState?: SessionState; } export interface SessionCreationRequest { sessionId: string; userId: string; connectionId: string; options?: SessionCreationOptions; } //# sourceMappingURL=types.d.ts.map