/*!
 * name: nuget-server
 * version: 0.19.0
 * description: NuGet server on Node.js
 * author: Kouji Matsui (@kekyo@mi.kekyo.net)
 * license: MIT
 * repository.url: https://github.com/kekyo/nuget-server.git
 * git.commit.hash: 5b9501882b352a0490b3091210ed1740cfb81389
 */

import { Logger } from '../types';
/**
 * Session data structure
 */
export interface Session {
    token: string;
    userId: string;
    username: string;
    role: string;
    expiresAt: Date;
    createdAt: Date;
}
/**
 * Session creation request
 */
export interface CreateSessionRequest {
    userId: string;
    username: string;
    role: string;
    expirationHours?: number;
}
/**
 * Session service configuration
 */
export interface SessionServiceConfig {
    logger: Logger;
    cleanupIntervalMinutes?: number;
}
/**
 * Session service interface for managing in-memory sessions
 */
export interface SessionService {
    readonly initialize: () => Promise<void>;
    readonly destroy: () => Promise<void>;
    readonly createSession: (request: CreateSessionRequest) => Promise<Session>;
    readonly getSession: (token: string) => Promise<Session | undefined>;
    readonly validateSession: (token: string) => Promise<Session | undefined>;
    readonly deleteSession: (token: string) => Promise<boolean>;
    readonly deleteAllUserSessions: (userId: string) => Promise<number>;
    readonly getActiveSessions: () => Promise<Session[]>;
    readonly getActiveSessionCount: () => Promise<number>;
    readonly cleanup: () => Promise<number>;
}
/**
 * Creates a session service instance for managing in-memory sessions
 * @param config - Session service configuration
 * @returns Session service instance
 */
export declare const createSessionService: (config: SessionServiceConfig) => SessionService;
//# sourceMappingURL=sessionService.d.ts.map