import * as MongoDB from 'mongodb';
import { MongoModel } from "../../models";
import { Context } from "../../context";
import { IResponse } from '../../types';
import { App } from '../../app';
export declare class Users extends MongoModel {
    transporter: any;
    constructor(app: App);
    getRootUser(): Promise<any>;
    createRootUser(): Promise<any>;
    getSockets(ids: string[] | MongoDB.ObjectID[]): Promise<string[]>;
    pushToken(ctx: Context): Promise<void>;
    pushNotification(ctx: Context, id: string): void;
    authenticate(ctx: Context): Promise<void>;
    verificationEmail(ctx: Context): Promise<void>;
    sendVerificationEmail(email: string, ctx: Context): Promise<IResponse>;
    activateUser(ctx: Context): Promise<IResponse>;
    forgetPassword(email: string): Promise<{}>;
    verifyToken(token: string, ctx?: Context): Promise<{}>;
    signin(email: string, password: string, uuid: string, ctx: Context): Promise<IResponse>;
    signup(document: any, ctx: Context): Promise<IResponse>;
    signout(uuid: string, ctx?: Context): Promise<{}>;
}
