/// <reference types="node" />
import { Model, Document } from 'mongoose';
import { Router } from 'express';
import { EventEmitter } from 'events';
import { InfoModel, ServeOptions, PermissionChecks } from '../definitions/model';
import { IPermission } from '../models/permissionSchema';
import { IRole } from '../models/roleSchema';
declare type RichEmitter = EventEmitter & PermissionChecks;
declare type returnFunction = {
    infoModel: InfoModel;
    emitter: RichEmitter;
};
export declare function setRoleEndpoints(router: Router, route: string, roleModel: Model<IRole>): Router;
export default function <T extends Document>(router: Router, route: string, model: Model<T>, models: any, permissionModel: Model<IPermission>, roleModel: Model<IRole>, userOptions: ServeOptions, isMongo4: boolean): returnFunction;
export {};
