import { RedisClientType } from 'redis'; import { RedisClusterType } from 'redis'; import { SessionData } from 'express-session'; import { Store } from 'express-session'; declare type Callback = (_err?: unknown, _data?: any) => any; export declare class RedisStore extends Store { client: RedisClientType | RedisClusterType; prefix: string; scanCount: number; serializer: Serializer; ttl: number | ((sess: SessionData) => number); disableTTL: boolean; disableTouch: boolean; constructor(opts: RedisStoreOptions); get(sid: string, cb?: Callback): Promise; set(sid: string, sess: SessionData, cb?: Callback): Promise; touch(sid: string, sess: SessionData, cb?: Callback): Promise; destroy(sid: string, cb?: Callback): Promise; clear(cb?: Callback): Promise; length(cb?: Callback): Promise; ids(cb?: Callback): Promise; all(cb?: Callback): Promise; private getTTL; private getAllKeys; private scanIterator; } declare interface RedisStoreOptions { client: any; prefix?: string; scanCount?: number; serializer?: Serializer; ttl?: number | ((sess: SessionData) => number); disableTTL?: boolean; disableTouch?: boolean; } declare interface Serializer { parse(s: string): SessionData | Promise; stringify(s: SessionData): string; } export { }