/// <reference types="multer" />
import { ErrorService } from 'src/error/error.service';
import { Repository } from 'typeorm';
import { LogService } from '../log/log.service';
import { CreateUserDto } from './dto/create-user.dto';
import { UpdateAvatarDto } from './dto/update-avatar.dto';
import { UpdateUserDto } from './dto/update-user.dto';
import { UpdateWalletUserDto } from './dto/update-wallet-user.dto';
import { RoleIds, UserEntity } from './entities/user.entity';
import { CarService } from '../car/car.service';
export declare class UserService {
    private userRepository;
    private logService;
    private error;
    private readonly carService;
    constructor(userRepository: Repository<UserEntity>, logService: LogService, error: ErrorService, carService: CarService);
    importExcel(file: Express.Multer.File, operatorUserId: string): Promise<any[]>;
    exportExcel(filters?: any, customFilters?: any): Promise<any>;
    getAll(page?: number, limit?: number, sorts?: any, filters?: any, customFilters?: any): Promise<{
        items: UserEntity[];
        pagination: {
            itemsPerPage: number;
            totalItems: number;
            currentPage: number;
            totalPages: number;
        };
    }>;
    getUserPanelAccessByEmailOrMobile(emailOrMobile: string): Promise<UserEntity>;
    findPanelAccessById(userId: string): Promise<UserEntity>;
    findById(userId: string): Promise<UserEntity>;
    findByUserKey(userKey: string): Promise<UserEntity>;
    getById(userId: string): Promise<{
        roleType: string;
        fullName: string;
        id: string;
        email: string;
        password: string;
        name: string;
        surName: string;
        nationalCode: string;
        gender: import("./entities/user.entity").Gender;
        birthday: string;
        phone: string;
        mobile: string;
        address: string;
        licenseNumber: string;
        virtualWallet: number;
        realWallet: number;
        bankName: string;
        accountNumber: string;
        cardNumber: string;
        sheba: string;
        isServiceman: boolean;
        isActive: boolean;
        isAdmin: boolean;
        roleId: RoleIds;
        groupId: number;
        isActiveGroup: boolean;
        codeRegister: string;
        countSms: number;
        isBlock: number;
        userKey: string;
        moaref: string;
        avatar: string;
        deleted: boolean;
        customerId: number;
        isImported: boolean;
        lastActivityAt: Date;
        lastSendAdvertisementAt: Date;
        createdAt: Date;
        updatedAt: Date;
        customer: import("../customer/entities/customer.entity").CustomerEntity;
        addresses: import("../address/entities/address.entity").AddressEntity[];
        cars: import("../car/entities/car.entity").CarEntity[];
        orders: import("../order/entities/order.entity").OrderEntity[];
        serviceMans: import("../order/entities/order.entity").OrderEntity[];
        serviceReminders: import("../service/entities/service-reminder.entity").ServiceReminderEntity[];
        polls: import("../poll/entities/poll.entity").PollEntity[];
        points: import("../point/entities/point.entity").PointEntity[];
        tickets: import("../ticket/entities/ticket.entity").TicketEntity[];
        role: import("../role/entities/role.entity").RoleEntity;
        productNotifQuantities: import("../product/entities/product-notif-quantity.entity").ProductNotifQuantityEntity[];
        news: import("../news/entities/news.entity").NewsEntity[];
        newscomments: import("../news/entities/news-comment.entity").NewscommentEntity[];
        withdraws: import("../withdraw/entities/withdraw.entity").WithdrawEntity[];
        ordersSeller: import("../order/entities/order.entity").OrderEntity[];
        operatorlogs: import("../log/entities/log.entity").LogEntity[];
        affectedLogs: import("../log/entities/log.entity").LogEntity[];
        bonusCredits: import("../bonus-credit/entities/bonus-credit.entity").BonusCreditsEntity[];
        products: import("../product/entities/product.entity").ProductEntity[];
        discounts: import("../discount/entities/discount.entity").DiscountEntity[];
        negativeScores: import("../negative-score/entities/negative-score.entity").NegativeScoreEntity[];
        drivingOffenses: import("../drivinig-offense/entities/driving-offense.entity").DrivingOffenseEntity[];
        payments: import("../payment/entities/payment.entity").PaymentEntity[];
        freewayTolls: import("../freeway-toll/entities/freeway-toll.entity").FreewayTollEntity[];
        insuranceThirdPartyInquiries: import("../insurance/entities/insurance-third-party-inquiry.entity").InsuranceThirdPartyInquiryEntity[];
        previousPassword: string;
    }>;
    addUser(dto: CreateUserDto, operatorUserId: string): Promise<{
        roleType: string;
        fullName: string;
        id: string;
        email: string;
        password: string;
        name: string;
        surName: string;
        nationalCode: string;
        gender: import("./entities/user.entity").Gender;
        birthday: string;
        phone: string;
        mobile: string;
        address: string;
        licenseNumber: string;
        virtualWallet: number;
        realWallet: number;
        bankName: string;
        accountNumber: string;
        cardNumber: string;
        sheba: string;
        isServiceman: boolean;
        isActive: boolean;
        isAdmin: boolean;
        roleId: RoleIds;
        groupId: number;
        isActiveGroup: boolean;
        codeRegister: string;
        countSms: number;
        isBlock: number;
        userKey: string;
        moaref: string;
        avatar: string;
        deleted: boolean;
        customerId: number;
        isImported: boolean;
        lastActivityAt: Date;
        lastSendAdvertisementAt: Date;
        createdAt: Date;
        updatedAt: Date;
        customer: import("../customer/entities/customer.entity").CustomerEntity;
        addresses: import("../address/entities/address.entity").AddressEntity[];
        cars: import("../car/entities/car.entity").CarEntity[];
        orders: import("../order/entities/order.entity").OrderEntity[];
        serviceMans: import("../order/entities/order.entity").OrderEntity[];
        serviceReminders: import("../service/entities/service-reminder.entity").ServiceReminderEntity[];
        polls: import("../poll/entities/poll.entity").PollEntity[];
        points: import("../point/entities/point.entity").PointEntity[];
        tickets: import("../ticket/entities/ticket.entity").TicketEntity[];
        role: import("../role/entities/role.entity").RoleEntity;
        productNotifQuantities: import("../product/entities/product-notif-quantity.entity").ProductNotifQuantityEntity[];
        news: import("../news/entities/news.entity").NewsEntity[];
        newscomments: import("../news/entities/news-comment.entity").NewscommentEntity[];
        withdraws: import("../withdraw/entities/withdraw.entity").WithdrawEntity[];
        ordersSeller: import("../order/entities/order.entity").OrderEntity[];
        operatorlogs: import("../log/entities/log.entity").LogEntity[];
        affectedLogs: import("../log/entities/log.entity").LogEntity[];
        bonusCredits: import("../bonus-credit/entities/bonus-credit.entity").BonusCreditsEntity[];
        products: import("../product/entities/product.entity").ProductEntity[];
        discounts: import("../discount/entities/discount.entity").DiscountEntity[];
        negativeScores: import("../negative-score/entities/negative-score.entity").NegativeScoreEntity[];
        drivingOffenses: import("../drivinig-offense/entities/driving-offense.entity").DrivingOffenseEntity[];
        payments: import("../payment/entities/payment.entity").PaymentEntity[];
        freewayTolls: import("../freeway-toll/entities/freeway-toll.entity").FreewayTollEntity[];
        insuranceThirdPartyInquiries: import("../insurance/entities/insurance-third-party-inquiry.entity").InsuranceThirdPartyInquiryEntity[];
        previousPassword: string;
    }>;
    updateAvatar(id: string, dto: UpdateAvatarDto, file: Express.Multer.File): Promise<import("typeorm").UpdateResult>;
    updateUser(id: string, dto: UpdateUserDto, operatorUserId: string): Promise<void>;
    updateWallet(userId: any, amount: any): Promise<void>;
    updateWalletUser(id: string, dto: UpdateWalletUserDto): Promise<boolean>;
    private _findUserPanelAccessBuilder;
    private _findUserActiveBuilder;
    getFull(where?: {}): Promise<UserEntity[]>;
    statisticChart(from: any, to: any, type?: string): Promise<unknown[]>;
    statistic(): Promise<{
        serviceMans: number;
        activeCustomer: number;
        inactiveCutomer: number;
        totalCustomer: number;
        monthCustomer: number;
        lastMonthCustomer: number;
    }>;
    deleteUser(id: string, operatorUserId: string): Promise<boolean>;
    reduceBothWallets(userId: string, amount: number): Promise<void>;
}
