import { Business } from 'src/business/entities/business.entity';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateUserDto } from './dto/update-user.dto';
import { User } from './entities/user.entity';
import { ChangeUserPasswordDto } from './dto/chnage-user-password';
import { BusinessAdmin } from 'src/business/dto/admin.user.dto';
export declare class UsersService {
    private UserModel;
    private readonly logger;
    private readonly uploadDir;
    constructor(UserModel: typeof User);
    create(createUserDto: CreateUserDto): Promise<{
        id: string;
        first_name: string;
        last_name: string;
        email: string;
        profile_image: string;
        role: string;
        businessId: string;
        business: Business;
        createdAt: Date;
        updatedAt: Date;
        deletedAt?: Date | any;
        version?: number | any;
        _attributes: User;
        dataValues: User;
        _creationAttributes: User;
        isNewRecord: boolean;
        sequelize: import("sequelize").Sequelize;
        _model: import("sequelize").Model<User, User>;
    }>;
    findAll(): string;
    findById(id: string): Promise<User>;
    findByBusinessId(id: string): Promise<User[]>;
    findByIdWithBusiness(id: string): Promise<User>;
    findByEmail(email: string): Promise<User>;
    update(id: string, updateUserDto: UpdateUserDto): string;
    updateBusinessAdmin(businessId: string, id: string, updateUserDto: BusinessAdmin): Promise<[affectedCount: number]>;
    updateProfile(id: string, updateUserDto: UpdateUserDto): Promise<[affectedCount: number]>;
    changePassword(id: string, changeUserPasswordDto: ChangeUserPasswordDto): Promise<{
        ok: string;
    }>;
    validateUser(email: string, password: string): Promise<User>;
    private validatePassword;
    remove(id: string): string;
    uploadProfileImage(userId: string, file: Express.Multer.File): Promise<{
        imageUrl: string;
    }>;
}
