/// <reference types="node" />
import { RequestHandler, Router } from 'express';
import * as events from 'events';
import { SessionMetadata } from './sessionMetadata.interface';
import session from 'express-session';
import { XuiLogger } from '../../common';
export declare abstract class SessionStore extends events.EventEmitter {
    protected readonly logger: XuiLogger;
    protected readonly router: Router;
    readonly storeName: string;
    protected constructor(storeName: string, router: Router, logger?: XuiLogger);
    abstract getStore(options: SessionMetadata): session.Store;
    configure: (options: SessionMetadata) => RequestHandler;
    getClassStore: (options: SessionMetadata) => session.Store;
    mapSessionOptions: (options: SessionMetadata, store: session.Store) => any;
    /**
     * Get all the events that this strategy emits
     * @return string[]
     */
    getEvents: () => string[];
}
//# sourceMappingURL=sessionStore.class.d.ts.map