import { MvcMiddleware, IContext, MvcContext, MiddlewareFunc } from '@mvx/mvc';
import { stores, Session } from 'koa-session';
/**
 * Session storage.
 */
export declare abstract class SessionStorage implements stores {
    constructor();
    abstract get(key: string, maxAge: number | 'session', data: {
        rolling: boolean;
    }): any;
    abstract set(key: string, sess: Partial<Session> & {
        _expire?: number;
        _maxAge?: number;
    }, maxAge: number | 'session', data: {
        changed: boolean;
        rolling: boolean;
    }): any;
    abstract destroy(key: string): any;
    static ρAnn(): any;
}
/**
 * session middleware.
 *
 * @export
 * @class SessionMiddleware
 * @extends {MvcMiddleware}
 */
export declare class SessionMiddleware extends MvcMiddleware {
    private middleware;
    private hasInit;
    private sessCfg;
    getMiddleware(context: MvcContext, koa: any): MiddlewareFunc;
    execute(ctx: IContext, next: () => Promise<void>): Promise<void>;
    static ρAnn(): any;
}
