/**
 * Interval, DST detection, and connection time validation utilities.
 *
 * Builds on Luxon's Interval and Duration to provide travel-specific
 * helpers: schedule date ranges, DST boundary detection, and
 * cross-timezone connection time validation.
 */
import { type DateTime, Interval } from "luxon";
/**
 * Create an Interval representing a schedule date range.
 *
 * Both start and end are normalized via `parseDateTime`.
 * The interval is half-open: `[start, end)`.
 *
 * @throws {RangeError} if end is before start or if either value is invalid.
 */
export declare function scheduleDateInterval(start: DateTime | string, end: DateTime | string): Interval;
/**
 * Check whether a given date falls on a DST transition day in the given zone.
 *
 * Compares the UTC offset at the start of the day with the offset at
 * the start of the next day; a difference indicates a DST transition.
 * Works for both "spring forward" and "fall back".
 *
 * Returns `false` if the zone does not observe DST or if the DateTime
 * is invalid.
 */
export declare function isDstTransition(date: DateTime | string, zone: string): boolean;
/**
 * Options for connection time validation.
 *
 * All values are in minutes. Defaults match typical domestic
 * connection rules but can be overridden for international or
 * airport-specific requirements.
 */
export interface ConnectionTimeOptions {
    /** Minimum allowed connection time in minutes (default: 30). */
    minMinutes?: number;
    /** Maximum allowed connection time in minutes (default: 240 / 4 hours). */
    maxMinutes?: number;
}
/**
 * Validate a connection between an arriving flight and a departing flight.
 *
 * Calculates the actual elapsed connection time (not calendar diff)
 * via Luxon's `Interval.diff()`, which is DST-safe — it measures
 * real elapsed milliseconds regardless of DST transitions or timezone
 * changes between the two timestamps.
 *
 * @returns An object with:
 *  - `valid` — whether the connection meets all constraints
 *  - `connectionMinutes` — actual elapsed minutes between arrival and departure
 *  - `reason` — human-readable explanation when invalid
 *
 * @throws {RangeError} if either DateTime is invalid.
 */
export declare function validateConnectionTime(arrival: DateTime | string, departure: DateTime | string, options?: ConnectionTimeOptions): {
    valid: boolean;
    connectionMinutes: number;
    reason?: string;
};
/**
 * Calculate the elapsed minutes between two DateTimes.
 *
 * Uses Luxon's `diff()` which returns real elapsed time
 * (accounts for DST; not calendar difference).
 * Both values are normalized via `parseDateTime`.
 *
 * If `to` is before `from`, the result is negative.
 *
 * @throws {RangeError} if either value is invalid.
 */
export declare function elapsedMinutes(from: DateTime | string, to: DateTime | string): number;
//# sourceMappingURL=interval.d.ts.map