diff --git a/connect-mongo/connect-mongo.d.ts b/connect-mongo/connect-mongo.d.ts
index ece75973a..cb39d42cf 100644
--- a/connect-mongo/connect-mongo.d.ts
+++ b/connect-mongo/connect-mongo.d.ts
@@ -99,7 +99,7 @@ declare module "connect-mongo" {
new (options: NaitiveMongoOptions): MongoStore;
}
- export class MongoStore implements session.Store {
+ export class MongoStore extends session.Store {
get: (sid: string, callback: (err: any, session: Express.Session) => void) => void;
set: (sid: string, session: Express.Session, callback: (err: any) => void) => void;
destroy: (sid: string, callback: (err: any) => void) => void;
diff --git a/express-session/express-session.d.ts b/express-session/express-session.d.ts
index 5e32e3b7e..035a36bce 100644
--- a/express-session/express-session.d.ts
+++ b/express-session/express-session.d.ts
@@ -4,6 +4,7 @@
// Definitions: https://github.com/borisyankov/DefinitelyTyped
///
+///
declare module Express {
@@ -36,6 +37,7 @@ declare module Express {
declare module "express-session" {
import express = require('express');
+ import node = require('events');
function session(options?: session.SessionOptions): express.RequestHandler;
@@ -43,7 +45,7 @@ declare module "express-session" {
export interface SessionOptions {
secret: string;
name?: string;
- store?: Store;
+ store?: Store | MemoryStore;
cookie?: express.CookieOptions;
genid?: (req: express.Request) => string;
rolling?: boolean;
@@ -52,15 +54,24 @@ declare module "express-session" {
saveUninitialized?: boolean;
unset?: string;
}
-
- export interface Store {
+
+ export interface BaseMemoryStore {
get: (sid: string, callback: (err: any, session: Express.Session) => void) => void;
set: (sid: string, session: Express.Session, callback: (err: any) => void) => void;
destroy: (sid: string, callback: (err: any) => void) => void;
length?: (callback: (err: any, length: number) => void) => void;
clear?: (callback: (err: any) => void) => void;
}
- export class MemoryStore implements Store {
+
+ export abstract class Store extends node.EventEmitter {
+ constructor(config?: any);
+
+ regenerate (req: express.Request, fn: (err: any) => any): void;
+ load (sid: string, fn: (err: any, session: Express.Session) => any): void;
+ createSession (req: express.Request, sess: Express.Session): void;
+ }
+
+ export class MemoryStore implements BaseMemoryStore {
get: (sid: string, callback: (err: any, session: Express.Session) => void) => void;
set: (sid: string, session: Express.Session, callback: (err: any) => void) => void;
destroy: (sid: string, callback: (err: any) => void) => void;