import type { DateTime } from "luxon";
/**
 * All Australian IANA timezone identifiers.
 */
export declare const AU_TIMEZONES: {
    readonly SYDNEY: "Australia/Sydney";
    readonly MELBOURNE: "Australia/Melbourne";
    readonly BRISBANE: "Australia/Brisbane";
    readonly PERTH: "Australia/Perth";
    readonly ADELAIDE: "Australia/Adelaide";
    readonly DARWIN: "Australia/Darwin";
    readonly EUCLA: "Australia/Eucla";
    readonly HOBART: "Australia/Hobart";
    readonly LINDEMAN: "Australia/Lindeman";
};
export type AuTimezone = (typeof AU_TIMEZONES)[keyof typeof AU_TIMEZONES];
/**
 * Mapping from IATA airport code to IANA timezone.
 * Covers major global airports plus all Australian airports.
 * Case-sensitive (uppercase codes only). Use `airportTimezone()`
 * for case-insensitive lookup.
 */
export declare const AIRPORT_TIMEZONE_MAP: Record<string, string>;
/**
 * Check whether a given IANA timezone string is an Australian timezone.
 */
export declare function isAustralianZone(zone: string): boolean;
/**
 * Case-insensitive lookup of the IANA timezone for an IATA airport code.
 * Returns `undefined` for unknown codes.
 */
export declare function airportTimezone(code: string): string | undefined;
/**
 * A DateTime bound to a specific IANA timezone.
 * The `zone` field records the original zone even if the DateTime
 * has been converted, preserving the source-of-truth zone.
 */
export interface ZonedDateTime {
    datetime: DateTime;
    zone: string;
}
/**
 * Create a ZonedDateTime from a Luxon DateTime.
 * If zone is omitted, the DateTime's own zone is used.
 * Throws if the DateTime is invalid.
 */
export declare function zonedDateTime(dt: DateTime, zone?: string): ZonedDateTime;
//# sourceMappingURL=timezone.d.ts.map