import type { Logger } from '@iota-big3/sdk-types'; import { Redis } from 'ioredis'; import { Knex } from 'knex'; import type { Result } from '@iota-big3/sdk-patterns'; export interface Session { id: string; userId: string; data: SessionData; createdAt: Date; updatedAt: Date; expiresAt: Date; lastActivityAt: Date; deviceInfo?: DeviceInfo; } export interface SessionData { userId: string; createdAt: Date; expiresAt: Date; lastAccessedAt: Date; data?: Record; roles?: string[]; permissions?: string[]; ipAddress?: string; userAgent?: string; } export interface DeviceInfo { id: string; type: 'web' | 'mobile' | 'desktop' | 'api'; name?: string; os?: string; browser?: string; trusted?: boolean; } export interface SessionStoreConfig { redis?: Redis; db?: Knex; sessionTTL?: number; maxConcurrentSessions?: number; extendOnActivity?: boolean; cleanupInterval?: number; } export declare class SessionStore { private redis?; private db?; private config; private logger?; private cleanupTimer?; constructor(config: SessionStoreConfig, logger?: Logger); createAsync(userId: string, data: SessionData, deviceInfo?: DeviceInfo): Promise>; getAsync(sessionId: string): Promise; touchAsync(sessionId: string): Promise; destroyAsync(sessionId: string): Promise; destroyUserSessionsAsync(userId: string): Promise; getUserSessionsAsync(userId: string): Promise; private enforceSessionLimitAsync; private cleanupAsync; private startCleanup; stopCleanup(): void; private generateSessionId; private getRedisKey; private getUserSessionsKey; } //# sourceMappingURL=session-store.d.ts.map