import { CreateLeaveTypeDto } from "./dto/create-leave-type.dto";
import { UpdateLeaveTypeDto } from "./dto/update-leave-type.dto";
import { LeaveTypeRepository } from "./repositories/leave-type.repository";
import { LeaveType } from "./entities/leave-type.entity";
export declare class LeaveTypesService {
    private readonly leaveTypeRepository;
    constructor(leaveTypeRepository: LeaveTypeRepository);
    create(createLeaveTypeDto: CreateLeaveTypeDto, token: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    findAll(query: any, token: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    findOne(id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    update(id: number, updateLeaveTypeDto: UpdateLeaveTypeDto, token: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    remove(id: number, token: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    activeInactive(id: number, token: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    checkLeaveTypeExist(code: string, companyId: number): Promise<boolean>;
    getHierarchy(token: string, filters?: any): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getSubLeaveTypes(parentId: number, token: string, filters?: any): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getSelectableLeaveTypes(token: string, filters?: any): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getMainLeaveTypeForSub(subLeaveTypeId: number): Promise<LeaveType | null>;
    private buildHierarchy;
}
