import { RedisClient } from 'redis'; import * as Promise from 'bluebird'; import { RequestHandler } from 'express'; export default class RedisSessionsAnywhere { client: RedisClient; options: NewOptions; constructor(client: RedisClient, options?: NewOptions); get(token: string): Promise>; set(token: string, values?: S): Promise>; delete(token: string): Promise; private getLock(token, callback); } export declare class TokenGenerator { private sessions; private options; constructor(sessions: RedisSessionsAnywhere, options: TokenGeneratorOptions); generateClientToken(token: Buffer | string): string; generateKey(): Promise; parseClientToken(token: string): ClientToken; isValid(token: string | ClientToken): boolean; connect(options?: ConnectOptions): RequestHandler; } export interface SessionObject { timeLeft: number; data: S; } export interface NewOptions { prefix?: string; ttl?: number; lock?: boolean; lockSuffix?: string; lockTtl?: number; lockRetry?: number; } export interface TokenGeneratorOptions { key: string; tokenBytes?: number; checkForCollision?: boolean; } export interface TokenAndClientToken { token: string; clientToken: string; } export interface ClientToken { token: string; expiresAt: number; } export interface ConnectOptions { cookieName?: string; alwaysUpdate?: boolean; sessionKey?: string; }