export type SessionIndexRedisLike = { get(key: string): Promise; set(key: string, data: any, ttl?: number): Promise; ttl(key: string): Promise; zadd(key: string, score: number, member: string): Promise; zrem(key: string, ...members: string[]): Promise; zrangeWithScores(key: string, start: number, stop: number): Promise<{ member: string; score: number; }[]>; }; export declare const SESSION_INDEX_PREFIX = "sess_idx"; export declare function buildSessionIndexKey(userId: string, appKey?: string): string | null; export declare function sessionRedisMemberKey(token: string, userId: string): string; export declare function addSessionToIndex(redis: SessionIndexRedisLike, token: string, userId: string, appKey: string | undefined, loggedInAt: number): Promise; export declare function removeSessionFromIndex(redis: SessionIndexRedisLike, token: string, userId: string, appKey?: string): Promise; export declare function kickOldestExcessSessions(redis: SessionIndexRedisLike, getRequest: () => any, userId: string, apiKey: { app_key?: string; max_session?: number; } | undefined, currentToken: string): Promise;