import { LeaveService } from './leave.service';
import { CreateLeaveRequestDto } from './dto/create-leave-request.dto';
import { UpdateLeaveBalanceDto } from './dto/leave-balance.dto';
import { PaginationQueryDto } from 'common/dto/pagination-query.dto';
export declare class LeaveController {
    private readonly leaveService;
    constructor(leaveService: LeaveService);
    createRequest(req: any, dto: CreateLeaveRequestDto): Promise<import("./leave-request.entity").LeaveRequest>;
    getUserRequests(req: any, query: PaginationQueryDto): Promise<{
        data: import("./leave-request.entity").LeaveRequest[];
        total: number;
    }>;
    getUserBalances(req: any): Promise<import("./leave-balance.entity").LeaveBalance[]>;
    getAllRequests(query: PaginationQueryDto): Promise<{
        data: import("./leave-request.entity").LeaveRequest[];
        total: number;
    }>;
    approve(id: number, req: any): Promise<import("./leave-request.entity").LeaveRequest>;
    reject(id: number, req: any, reason?: string): Promise<import("./leave-request.entity").LeaveRequest>;
    assignInitial(userId: number): Promise<void>;
    cancel(id: number, req: any): Promise<import("./leave-request.entity").LeaveRequest>;
    getUserRequestsByHR(userId: number, query: PaginationQueryDto): Promise<{
        data: import("./leave-request.entity").LeaveRequest[];
        total: number;
    }>;
    updateBalance(userId: number, leaveType: string, body: UpdateLeaveBalanceDto): Promise<import("./leave-balance.entity").LeaveBalance>;
}
