import { EntityEnum } from "../interface/entity.utils.interface"; import { RelationConfigs } from "../interface/relation-config.interface"; import { IUserEntity } from "../interface/user.entity.interface"; import { BaseEntityModel } from "./base.entity.model"; import { IRowActions } from "./interface/row-actions.interface"; import { LeaveApprovalActionEnum } from "../enums/leave_approval_action_enum"; import { LeaveApprovalStatusEnum } from "../enums/leave_approval_status_enum"; import { ILeaveApprovalFlowConfigContextData } from "../flow-configs/leave_approval_flow.config"; import { ILeaveApprovalEntity } from "../interface/leave_approval.entity.interface"; import { LeaveEntityModel } from "./leave.entity.model"; import { UserEntityModel } from "./user.entity.model"; export declare class LeaveApprovalEntityModel extends BaseEntityModel implements ILeaveApprovalEntity { id: number; leaveId: number; approverId: number; reason?: string; status: LeaveApprovalStatusEnum; createdOn: number; updatedOn: number; createdBy: number; updatedBy: number; leave?: LeaveEntityModel; user?: UserEntityModel; static relationConfigs: RelationConfigs<[EntityEnum.LEAVE, EntityEnum.USER], EntityEnum.LEAVE_APPROVAL>; static fromEntity(entity: ILeaveApprovalEntity): LeaveApprovalEntityModel; getRelationConfigs(): any[]; getNextStatus(currentUser: IUserEntity, action: LeaveApprovalActionEnum, leaveApprovalFlowConfigContextData: ILeaveApprovalFlowConfigContextData): LeaveApprovalStatusEnum; getAvailableActions(currentUser: UserEntityModel, config?: { combinedActions?: Record; customLabels?: Partial>; }): IRowActions[]; getUpdateActionVisibility(currentUser: UserEntityModel): { [key: string]: () => boolean; }; static areAllApproved(models: LeaveApprovalEntityModel[]): boolean; static isAnyRejected(models: LeaveApprovalEntityModel[]): boolean; static isAnyPending(models: LeaveApprovalEntityModel[]): boolean; static isAnyEscalated(models: LeaveApprovalEntityModel[]): boolean; }