import { DurationTypeEnum } from "../enums/duration_type_enum"; import { LeaveStatusEnum } from "../enums/leave_status_enum"; import { LeaveTypeEnum } from "../enums/leave_type_enum"; import { IEntityAuditColumn } from "./entity-audit-columns.interface"; import { EnumEntityType, VirtualEntityEnum } from "./entity.utils.interface"; export interface ILeaveEntity extends IEntityAuditColumn { id: number; employeeId: number; fromDate: string; toDate: string; reason: string; durationType: DurationTypeEnum; status: LeaveStatusEnum; remark?: string; type: LeaveTypeEnum; } export interface ILeaveVirtualEntityColumnKeys { totalLeavesTaken: number; totalLeavesPending: number; } export interface ILeaveCountVirtualEntity extends IEntityAuditColumn { id: number; period: string; leaveId?: number; count: number; } export declare const virtualEntityToKeysMap: { [K in VirtualEntityEnum]: (keyof EnumEntityType)[]; };