// generated by diplomat-tool
import type { IsoDate } from
"./IsoDate"
import type { IsoDateTime } from
"./IsoDateTime"
import type { Time } from
"./Time"
import type { TimeZone } from
"./TimeZone"
import type { TimeZoneVariant } from
"./TimeZoneVariant"
import type { UtcOffset } from
"./UtcOffset"
import type { VariantOffsetsCalculator } from
"./VariantOffsetsCalculator"
import type { pointer, codepoint } from
"./diplomat-runtime.d.ts";
/**
* See the [Rust documentation for `TimeZoneInfo`](https://docs.rs/icu/2.1.1/icu/time/struct.TimeZoneInfo.html) for more information.
*/
export
class TimeZoneInfo {
/** @internal */
get ffiValue(): pointer;
/**
* Creates a time zone for UTC (Coordinated Universal Time).
*
* See the [Rust documentation for `utc`](https://docs.rs/icu/2.1.1/icu/time/struct.TimeZoneInfo.html#method.utc) for more information.
*/
static utc(): TimeZoneInfo;
/**
* See the [Rust documentation for `id`](https://docs.rs/icu/2.1.1/icu/time/struct.TimeZoneInfo.html#method.id) for more information.
*/
get id(): TimeZone;
/**
* Sets the datetime at which to interpret the time zone
* for display name lookup.
*
* Notes:
*
* - If not set, the formatting datetime is used if possible.
* - If the offset is not set, the datetime is interpreted as UTC.
* - The constraints are the same as with `ZoneNameTimestamp` in Rust.
* - Set to year 1000 or 9999 for a reference far in the past or future.
*
* See the [Rust documentation for `at_date_time_iso`](https://docs.rs/icu/2.1.1/icu/time/struct.TimeZoneInfo.html#method.at_date_time_iso) for more information.
*
* Additional information: [1](https://docs.rs/icu/2.1.1/icu/time/zone/struct.ZoneNameTimestamp.html)
*/
atDateTimeIso(date: IsoDate, time: Time): TimeZoneInfo;
/**
* Sets the timestamp, in milliseconds since Unix epoch, at which to interpret the time zone
* for display name lookup.
*
* Notes:
*
* - If not set, the formatting datetime is used if possible.
* - The constraints are the same as with `ZoneNameTimestamp` in Rust.
*
* See the [Rust documentation for `with_zone_name_timestamp`](https://docs.rs/icu/2.1.1/icu/time/struct.TimeZoneInfo.html#method.with_zone_name_timestamp) for more information.
*
* Additional information: [1](https://docs.rs/icu/2.1.1/icu/time/zone/struct.ZoneNameTimestamp.html#method.from_zoned_date_time_iso), [2](https://docs.rs/icu/2.1.1/icu/time/zone/struct.ZoneNameTimestamp.html)
*/
atTimestamp(timestamp: bigint): TimeZoneInfo;
/**
* Returns the DateTime for the UTC zone name reference time
*
* See the [Rust documentation for `zone_name_timestamp`](https://docs.rs/icu/2.1.1/icu/time/struct.TimeZoneInfo.html#method.zone_name_timestamp) for more information.
*/
get zoneNameDateTime(): IsoDateTime |
null;
/**
* See the [Rust documentation for `with_variant`](https://docs.rs/icu/2.1.1/icu/time/struct.TimeZoneInfo.html#method.with_variant) for more information.
*
* @deprecated returns unmodified copy
*/
withVariant(timeVariant: TimeZoneVariant): TimeZoneInfo;
/**
* See the [Rust documentation for `offset`](https://docs.rs/icu/2.1.1/icu/time/struct.TimeZoneInfo.html#method.offset) for more information.
*/
get offset(): UtcOffset |
null;
/**
* See the [Rust documentation for `infer_variant`](https://docs.rs/icu/2.1.1/icu/time/struct.TimeZoneInfo.html#method.infer_variant) for more information.
*
* Additional information: [1](https://docs.rs/icu/2.1.1/icu/time/zone/enum.TimeZoneVariant.html)
*
* @deprecated does nothing
*/
inferVariant(offsetCalculator: VariantOffsetsCalculator):
boolean;
/**
* See the [Rust documentation for `variant`](https://docs.rs/icu/2.1.1/icu/time/struct.TimeZoneInfo.html#method.variant) for more information.
*
* @deprecated always returns null
*/
variant(): TimeZoneVariant |
null;
/**
* Creates a time zone info from parts.
*
* `variant` is ignored.
*/
constructor(id: TimeZone, offset: UtcOffset |
null, variant: TimeZoneVariant |
null);
}