import { UserService } from '../user/user.services';
import { User } from '../user/user.entity';
import { CreateUserDto } from './create-user.dto';
import { UpdateStatusDto, UpdateUserDto } from './UpdateUserDto';
import { AuthService } from '../user/auth/auth.service';
import { LoginDto } from '../user/auth/LoginDto';
import { GenerateOtpDto } from './GenerateOtpDto';
import { ValidateOtpDto } from './ValidateOtpDto';
import { JwtService } from '@nestjs/jwt';
import { UserRole } from './user.entity';
import { SmsService } from '../smsgetway/sms.service';
import { emailOtpService } from '../emailotp/otp-email.service';
import { ChangePasswordDto } from './ChangePasswordDto';
import { ForgotPasswordDto } from './ForgotPasswordDto';
import { ResetPasswordDto } from './ResetPasswordDto';
import { UpdateUserDeviceIdDto } from './UpdateUserDeviceIdDto';
export declare class UserController {
    private readonly jwtService;
    private readonly userService;
    private readonly authService;
    private readonly smsService;
    private readonly emailOtpService;
    constructor(jwtService: JwtService, userService: UserService, authService: AuthService, smsService: SmsService, emailOtpService: emailOtpService);
    findAll(): Promise<User[]>;
    register(createUserDto: CreateUserDto): Promise<any>;
    generateOTP(generateOtpDto: GenerateOtpDto): Promise<any>;
    login(loginDto: LoginDto): Promise<{
        status: boolean;
        message: string;
        socialLogin: boolean;
        accessToken: string;
        userdata: User;
        accessModule: any;
    }>;
    firebaseLogin(body: {
        idToken: string;
    }): Promise<any>;
    getProfile(userId: number): Promise<User>;
    updateUser(userId: string, updateUserDataDto: UpdateUserDto): Promise<User>;
    validateOtp(body: ValidateOtpDto): Promise<{
        status: boolean;
        message: string;
        userdata: User;
    } | {
        status: boolean;
        message: string;
        userdata?: undefined;
    }>;
    addRole(id: number, role: UserRole): Promise<User>;
    removeRole(id: number, role: UserRole): Promise<User>;
    updateStatus(id: string, updateStatusDto: UpdateStatusDto): Promise<{
        status: boolean;
        message: string;
        data: User;
    }>;
    updateDeviceId(id: string, updateuserDeviceIdDto: UpdateUserDeviceIdDto): Promise<{
        status: boolean;
        message: string;
        data: User;
    }>;
    changePassword(id: string, changePasswordDto: ChangePasswordDto): Promise<{
        status: boolean;
        message: string;
        data: {
            id: number;
            message: string;
        };
    }>;
    forgotPassword(dto: ForgotPasswordDto): Promise<{
        message: string;
    }>;
    resetPassword(req: any, dto: ResetPasswordDto): Promise<{
        id: number;
        message: string;
    }>;
}
