import type { ISessionStoreAdapter, Session, CreateSessionInput } from './types.js';
/**
 * Configuration options for the memory session store
 */
export interface MemorySessionStoreOptions {
    /** Default session TTL in seconds (default: 24 hours) */
    defaultTTL?: number;
    /** Maximum sessions per user (default: 10) */
    maxSessionsPerUser?: number;
    /** Cleanup interval in milliseconds (default: 5 minutes) */
    cleanupIntervalMs?: number;
}
/**
 * In-memory session store adapter implementation
 */
export declare class MemorySessionStoreAdapter implements ISessionStoreAdapter {
    private sessions;
    private userSessions;
    private cleanupTimer;
    private readonly options;
    constructor(options?: MemorySessionStoreOptions);
    /**
     * Create a new session
     */
    create(input: CreateSessionInput): Promise<Session>;
    /**
     * Get a session by ID
     */
    get(sessionId: string): Promise<Session | null>;
    /**
     * Delete a session permanently
     */
    delete(sessionId: string): Promise<boolean>;
    /**
     * Revoke a session
     */
    revoke(sessionId: string, reason: string, revokedBy: string): Promise<boolean>;
    /**
     * Get all active sessions for a user
     */
    getUserSessions(userId: string): Promise<Session[]>;
    /**
     * Update session activity timestamp
     */
    touch(sessionId: string): Promise<boolean>;
    /**
     * Validate a session
     */
    validate(sessionId: string): Promise<{
        valid: boolean;
        session?: Session;
        reason?: string;
    }>;
    /**
     * Get the total number of active sessions
     */
    get size(): number;
    /**
     * Stop the background cleanup timer
     */
    stop(): void;
    /**
     * Enforce maximum sessions per user
     */
    private enforceSessionLimit;
    /**
     * Start background cleanup of expired sessions
     */
    private startCleanup;
    /**
     * Remove expired sessions
     */
    private cleanupExpired;
}
/**
 * Get the default memory session store instance
 */
export declare function getMemorySessionStoreAdapter(options?: MemorySessionStoreOptions): ISessionStoreAdapter;
/**
 * Create a new memory session store instance (for testing)
 */
export declare function createMemorySessionStoreAdapter(options?: MemorySessionStoreOptions): MemorySessionStoreAdapter;
/**
 * Reset the default instance (for testing)
 */
export declare function resetMemorySessionStoreAdapter(): void;
//# sourceMappingURL=memory-session.d.ts.map