import { AuthService } from '../services/authentication.service';
import { LoginDto, SaveUserDTO } from '../dtos/authentication.dto';
import { UsersService } from '../services/users.service';
import { BaseController } from 'src/controllers/base.controller';
import { UserDetailEntity } from '../entities/authentication.entity';
import { IAuthParam, IDDto, SDKRequestPasswordResetDTO, SDKResetPasswordDTO, SDKSystemLogoutDTO, SDKVerifyResetPasswordTokenDTO } from '@serene-dev/la-nest-library';
import { ToggleActiveDTO } from 'src/dtos/organisation.dto';
export declare class UsersController extends BaseController<UserDetailEntity> {
    service: UsersService;
    authService: AuthService;
    subject: string;
    constructor(service: UsersService, authService: AuthService);
    loginFunc: (req: LoginDto, res: UserDetailEntity) => Promise<any>;
    createFunc: (req: SaveUserDTO, res: UserDetailEntity) => Promise<any>;
    login(data: LoginDto): Promise<any>;
    create(data: SaveUserDTO, auth: IAuthParam): Promise<any>;
    forceLogout(body: SDKSystemLogoutDTO): Promise<boolean>;
    logout(param: IAuthParam): Promise<string | boolean>;
    update(data: SaveUserDTO, param: IDDto, auth: IAuthParam): Promise<any>;
    toggleStatus(data: ToggleActiveDTO, param: IDDto, auth: IAuthParam): Promise<string | import("../entities/authentication.entity").AuthEntity>;
    requestPasswordReset(body: SDKRequestPasswordResetDTO): Promise<string | {
        message: string;
    }>;
    verifyResetPasswordToken(body: SDKVerifyResetPasswordTokenDTO): Promise<string | import("@serene-dev/la-nest-library/dist/libs/la-library/src/modules/authentication/authentication.service").IPasswordResetTokenObj>;
    resetPassword(body: SDKResetPasswordDTO): Promise<string | {
        message: string;
    }>;
}
