import { Repository } from 'typeorm';
import { User } from './user.entity';
import { CreateUserDto } from './dto/create-user.dto';
import { LeaveBalance } from '../leave/leave-balance.entity';
import { UpdateUserDto } from './dto/update-user.dto';
import { PaginationQueryDto } from 'common/dto/pagination-query.dto';
import { UpdateProfileDto } from './dto/update-profile.dto';
import { ChangePasswordDto } from './dto/change-password.dto';
import { LeaveService } from 'src/leave/leave.service';
export declare class UsersService {
    private userRepository;
    private leaveBalanceRepository;
    private leaveService;
    constructor(userRepository: Repository<User>, leaveBalanceRepository: Repository<LeaveBalance>, leaveService: LeaveService);
    findAll(query: PaginationQueryDto, currentUserId?: number): Promise<{
        data: User[];
        total: number;
        page: number;
        lastPage: number;
    }>;
    updateProfile(userId: number, dto: UpdateProfileDto): Promise<User>;
    changePassword(userId: number, dto: ChangePasswordDto): Promise<{
        message: string;
    }>;
    findOneByEmail(email: string): Promise<User | null>;
    findOne(id: number): Promise<User>;
    create(createUserDto: CreateUserDto): Promise<User>;
    update(id: number, updateUserDto: UpdateUserDto): Promise<User>;
    remove(id: number): Promise<void>;
    removeBulk(ids: number[]): Promise<void>;
}
