import { leave_requests_leave_type, leave_requests_duration, leave_requests_half_day_slot, leave_requests_status } from '../types/prisma';
type LeaveType = leave_requests_leave_type;
type LeaveDuration = leave_requests_duration;
type HalfDaySlot = leave_requests_half_day_slot;
type LeaveStatus = leave_requests_status;
export interface LeaveRequestEntity {
    employee_id: string;
    leave_type: LeaveType;
    duration: LeaveDuration;
    half_day_slot?: HalfDaySlot | null;
    start_date: Date;
    end_date: Date;
    leave_days: number;
    reason: string;
    status: LeaveStatus;
    is_backdated: boolean;
    sandwich_applied: boolean;
    attachment_url?: string | null;
}
export declare class LeaveRequestBuilder {
    private data;
    forEmployee(employeeId: string): this;
    type(leaveType: LeaveType): this;
    dates(start: Date, end: Date): this;
    duration(duration: LeaveDuration, slot?: HalfDaySlot): this;
    computedDays(days: number): this;
    reason(text: string): this;
    status(status: LeaveStatus): this;
    backdated(isBackdated: boolean): this;
    sandwich(applied: boolean): this;
    attachment(url?: string): this;
    build(): LeaveRequestEntity;
}
export {};
//# sourceMappingURL=LeaveRequestBuilder.d.ts.map