import { Repository } from 'typeorm';
import { User, UserRole } from '../user/user.entity';
import { CreateUserDto } from '../user/create-user.dto';
import { UpdateUserDto } from '../user/UpdateUserDto';
import { KycVerificationStatus } from 'src/common/kyc/kyc-status.enum';
export declare class UserService {
    private readonly userRepository;
    constructor(userRepository: Repository<User>);
    findAll(): Promise<User[]>;
    registerUser(createUserDto: CreateUserDto): Promise<User>;
    findAdmin(): Promise<User[]>;
    private generateUserId;
    private hashPassword;
    updateUser(userId: string, updateUserDto: UpdateUserDto): Promise<User>;
    updateOtpUser(user: User): Promise<User>;
    updateDeviceIdUser(user: User): Promise<User>;
    findUserByMobile(identifier: string): Promise<User | null>;
    validateOtp(identifier: string, otp: string): Promise<boolean>;
    findOneProfile(userId: string): Promise<User | null>;
    findById(userId: number): Promise<User | null>;
    findOneMobileEmail(identifier: string): Promise<User | null>;
    updateOtpUserStatus(user: User): Promise<User>;
    addRole(id: number, role: UserRole): Promise<User>;
    removeRole(id: number, role: UserRole): Promise<User>;
    updateStatus(id: number, status: string): Promise<User>;
    changePassword(userId: number, newPassword: string): Promise<{
        id: number;
        message: string;
    }>;
    updateDeviceIdNotification(id: number, deviceId: string, deviceType: string): Promise<User>;
    setUserVerifiedById(id: number, verified: boolean): Promise<User>;
    setUserKycVerifiedById(id: number, verified: boolean): Promise<User>;
    updateUserKycState(id: number, status: KycVerificationStatus, rejectionReason?: string | null): Promise<User>;
}
