UNPKG

solver-sdk

Version:

SDK для интеграции с Code Solver Backend API

98 lines 4.22 kB
import { WebSocketNamespace } from '../constants/websocket-namespaces.constants.js'; import { Logger } from './logger.js'; /** * Интерфейс для хранения токенов сессий */ export interface SessionTokenStore { /** Получить токен сессии */ getToken(namespace: WebSocketNamespace): string | null; /** Сохранить токен сессии */ saveToken(namespace: WebSocketNamespace, token: string): void; /** Удалить токен сессии */ removeToken(namespace: WebSocketNamespace): void; /** Проверить наличие токена */ hasToken(namespace: WebSocketNamespace): boolean; /** Очистить все токены */ clear(): void; } /** * Класс для хранения токенов сессий в памяти */ export declare class MemorySessionTokenStore implements SessionTokenStore { /** Хранилище токенов */ private tokens; /** * Получить токен сессии для указанного пространства имен * @param {WebSocketNamespace} namespace Пространство имен * @returns {string | null} Токен сессии или null, если не найден */ getToken(namespace: WebSocketNamespace): string | null; /** * Сохранить токен сессии для указанного пространства имен * @param {WebSocketNamespace} namespace Пространство имен * @param {string} token Токен сессии */ saveToken(namespace: WebSocketNamespace, token: string): void; /** * Удалить токен сессии для указанного пространства имен * @param {WebSocketNamespace} namespace Пространство имен */ removeToken(namespace: WebSocketNamespace): void; /** * Проверить наличие токена для указанного пространства имен * @param {WebSocketNamespace} namespace Пространство имен * @returns {boolean} true, если токен есть */ hasToken(namespace: WebSocketNamespace): boolean; /** * Очистить все токены */ clear(): void; } /** * Опции для менеджера сессий */ export interface SessionManagerOptions { /** Включение сохранения и восстановления сессий */ enableSessionPersistence?: boolean; /** Логгер */ logger?: Logger; } /** * Класс для управления токенами сессий WebSocket */ export declare class SessionManager { /** Хранилище токенов сессий */ private sessionTokens; /** Включено ли сохранение сессий */ private readonly enableSessionPersistence; /** Логгер */ private readonly logger; /** * Создает новый менеджер сессий * @param {SessionManagerOptions} options Опции менеджера сессий */ constructor(options?: SessionManagerOptions); /** * Сохраняет токен сессии для пространства имен * @param {string} namespace Пространство имен * @param {string} token Токен сессии */ saveSessionToken(namespace: string, token: string): void; /** * Получает токен сессии для пространства имен * @param {string} namespace Пространство имен * @returns {string | undefined} Токен сессии или undefined, если не найден */ getSessionToken(namespace: string): string | undefined; /** * Удаляет токен сессии для пространства имен * @param {string} namespace Пространство имен */ clearSessionToken(namespace: string): void; /** * Удаляет все токены сессий */ clearAllSessionTokens(): void; } //# sourceMappingURL=session-manager.d.ts.map