solver-sdk
Version:
SDK для интеграции с Code Solver Backend API
98 lines • 4.22 kB
TypeScript
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