import { NextFunction, Request, Response } from 'express'; import { EntityController } from '@commun/core'; import { BaseUserModel } from '..'; import { AccessToken, UserTokens } from '../types/UserTokens'; export declare class BaseUserController extends EntityController { create(req: Request): Promise<{ item: MODEL; }>; loginWithPassword(req: Request): Promise<{ user: MODEL; tokens: UserTokens; }>; logout(req: Request): Promise<{ result: boolean; }>; getAccessToken(req: Request): Promise; verify(req: Request): Promise<{ result: boolean; }>; forgotPassword(req: Request): Promise<{ result: boolean; }>; resetPassword(req: Request): Promise<{ result: boolean; }>; startAuthWithProvider(req: Request, res: Response, next: NextFunction): void; authenticateWithProvider(req: Request, res: Response, next: NextFunction): void; completeAuthWithProvider(req: Request, res: Response): Promise; generateAccessTokenForAuthWithProvider(req: Request): Promise<{ user: MODEL; tokens: { refreshToken: string | undefined; accessToken: string; accessTokenExpiration: number; }; }>; private findUserByEmailOrUsername; protected generateAccessToken(user: MODEL): Promise<{ accessToken: string; accessTokenExpiration: number; }>; protected generateRefreshToken(user: MODEL): Promise; }