diff --git a/mongoose-paginate/mongoose-paginate-tests.ts b/mongoose-paginate/mongoose-paginate-tests.ts
new file mode 100644
index 0000000000..7857ffda33
--- /dev/null
+++ b/mongoose-paginate/mongoose-paginate-tests.ts
@@ -0,0 +1,75 @@
+///
+///
+///
+
+/**
+ * Created by Linus Brolin .
+ */
+
+import {
+ Schema,
+ model,
+ PaginateModel,
+ PaginateOptions,
+ PaginateResult
+} from 'mongoose';
+import * as mongoosePaginate from 'mongoose-paginate';
+import { Router, Request, Response } from 'express';
+
+
+//#region Test Models
+interface User {
+ email: string;
+ username: string;
+ password: string;
+}
+
+const UserSchema: Schema = new Schema({
+ email: String,
+ username: String,
+ password: String
+});
+
+UserSchema.plugin(mongoosePaginate);
+
+type UserModel = _UserModel & PaginateModel;
+interface _UserModel {}
+
+let UserModel: UserModel = model('User', UserSchema) as UserModel;
+//#endregion
+
+
+//#region Test Paginate
+let router: Router = Router();
+
+router.get('/users.json', function(req: Request, res: Response) {
+ let descending: boolean = true;
+ let options: PaginateOptions = {};
+ options.select = 'email username';
+ options.sort = { 'username': (descending ? -1 : 1) };
+ options.populate = '';
+ options.lean = true;
+ options.leanWithId = false;
+ options.offset = 0;
+ options.page = 1;
+ options.limit = 10;
+
+ UserModel
+ .paginate({}, options, (err: any, value: PaginateResult) => {
+ if (err) {
+ console.log(err);
+ return res.status(500).send(err);
+ }
+
+ console.log('total: ' + value.total);
+ console.log('limit: ' + value.limit);
+ console.log('page: ' + value.page);
+ console.log('pages: ' + value.pages);
+ console.log('offset: ' + value.offset);
+ console.log('docs: ');
+ console.dir(value.docs);
+ return res.json(value);
+ });
+
+});
+//#endregion
diff --git a/mongoose-paginate/mongoose-paginate.d.ts b/mongoose-paginate/mongoose-paginate.d.ts
new file mode 100644
index 0000000000..5481c42775
--- /dev/null
+++ b/mongoose-paginate/mongoose-paginate.d.ts
@@ -0,0 +1,45 @@
+// Type definitions for mongoose-paginate 5.0.0
+// Project: https://github.com/edwardhotchkiss/mongoose-paginate
+// Definitions by: Linus Brolin , simonxca
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+///
+
+declare module 'mongoose' {
+ export interface PaginateOptions {
+ select?: Object | string;
+ sort?: Object | string;
+ populate?: Array