/**
 * @file dateMath.ts
 * @input PlainDate records, Instant epoch milliseconds, IANA timezone IDs
 * @output Pure range, conversion, formatting, and event-overlap utilities
 * @position Shared schedule utility layer; consumed by Schedule and tests
 */
import { type PlainDate } from '@astryxdesign/core/utils';
import type { CalendarDayEvent, CalendarEvent } from './CalendarEvent';
import type { ScheduleRange } from './types';
export declare function getBrowserTimezoneID(): string;
export declare function isDayEvent(event: CalendarEvent): event is CalendarDayEvent;
export declare function getScheduleRangeFromDates({ startDate, endDate, timezoneID, }: {
    startDate: PlainDate;
    endDate: PlainDate;
    timezoneID: string;
}): ScheduleRange;
export declare function enumerateDates(start: PlainDate, endExclusive: PlainDate): PlainDate[];
export declare function eventOverlapsRange(event: CalendarEvent, range: ScheduleRange, timezoneID: string): boolean;
export declare function eventOccursOnDate(event: CalendarEvent, date: PlainDate, timezoneID: string): boolean;
export declare function sortEvents(events: ReadonlyArray<CalendarEvent>, timezoneID: string): CalendarEvent[];
//# sourceMappingURL=dateMath.d.ts.map