import { holidayResponseDto } from '../modules/holidays/holidays.dto';
export declare const normalizeHolidayDate: (value: Date, timeZone?: string) => Date;
export declare const getHolidayRangeLength: (startDate: Date, endDate: Date, timeZone?: string) => number;
export declare const isHolidayLeapYear: (year: number) => boolean;
export declare const buildHolidayRecurringOccurrence: (baseDate: Date, year: number, timeZone?: string) => Date;
export declare const buildHolidayRecurringRange: (startDate: Date, endDate: Date, year: number, timeZone?: string) => {
    occurrenceStart: Date;
    occurrenceEnd: Date;
};
export declare const includeHolidayDepartments: () => {
    departments: boolean;
};
export declare const ensureHolidayDepartmentIdsExist: (db: any, departmentIds: string[], owner_id: string) => Promise<void>;
export declare const buildHolidayWhereFilter: (query: {
    holiday_type?: string;
    search?: string;
    is_recurring?: boolean;
}) => any;
export declare const buildUpcomingHolidayRecurringDates: (baseDate: Date, count: number, timeZone?: string) => string[];
export declare const buildHolidaySummary: (rows: Array<{
    start_date: Date;
    end_date: Date;
    is_recurring: boolean;
    holiday_type: string;
}>) => {
    total_holidays: number;
    recurring_holidays: number;
    total_national_holidays: number;
    total_company_holidays: number;
};
export declare const getHolidayUtcMonthStartEnd: (year: number, month: number, timeZone?: string) => {
    startUtc: Date;
    endUtc: Date;
};
export declare const getHolidayUtcMonthStartEndFromDate: (date?: Date, timeZone?: string) => {
    startUtc: Date;
    endUtc: Date;
};
export declare const getCurrentMonthHolidays: (recurringHolidays: holidayResponseDto[], nonRecurringHolidays: holidayResponseDto[], startUtc: Date, endUtc: Date, timeZone?: string) => {
    id?: string;
    name?: string;
    holiday_type?: "public" | "company" | "optional" | "religious" | "regional" | "observance" | "other";
    start_date?: string;
    end_date?: string;
    occurrence_date?: string;
    is_recurring?: boolean;
    generated_from_recurring?: boolean;
    description?: string;
    departments?: {
        id: string;
        name: string;
        department_code: string;
    }[];
    created_at?: string;
    updated_at?: string;
}[];
