import { DateTime } from 'luxon';
export type AttendanceDateRange = {
    from: DateTime;
    to: DateTime;
};
/** One calendar-month-aligned slice of an attendance range (inclusive days). */
export type AttendanceCalendarSegment = {
    from: DateTime;
    to: DateTime;
};
/**
 * Split an inclusive date range into segments that each stay within one calendar month.
 * Single month → one segment. Cross-month → page 1 ends on last day of first month, next starts on 1st.
 */
export declare function splitAttendanceRangeIntoCalendarMonthSegments(from: DateTime, to: DateTime): AttendanceCalendarSegment[];
/**
 * Attendance register for scheduled O&M invoice supporting PDF.
 * `omAnchorDate` is the O&M / billing anchor day (scheduler `targetDate`), e.g. 24 Mar → 1 Feb through 24 Mar.
 *
 * FROM: first day of the calendar month before `to`'s month.
 * TO: O&M anchor day start-of-day in `timezone`.
 */
export declare function computeScheduledAttendanceRange(omAnchorDate: DateTime, timezone: string): AttendanceDateRange;
/**
 * Caps the inclusive end of the attendance range at `generationToday` so the PDF never lists days after
 * the bill generation calendar day (scheduled O&M uses anchor = tomorrow; attendance stops at "today").
 */
export declare function capAttendanceRangeToGenerationDay(range: AttendanceDateRange, generationToday: DateTime): AttendanceDateRange;
//# sourceMappingURL=attendancePeriod.d.ts.map