@box-kite/react 2.2.5 → 2.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/.claude/rules/box-kite-rules.md +3 -1
  2. package/.claude/skills/box-kite/SKILL.md +3 -1
  3. package/.claude/skills/box-kite/references/components.md +34 -0
  4. package/.cursor/rules/box-kite.mdc +3 -1
  5. package/AGENTS.md +3 -1
  6. package/BOX_AI_CONTEXT.md +95 -5
  7. package/BOX_KITE_AI_CONTEXT.md +95 -5
  8. package/box.cjs +1 -1
  9. package/box.mjs +7 -7
  10. package/catalog.cjs +1 -1
  11. package/catalog.mjs +521 -0
  12. package/client.cjs +1 -1
  13. package/client.mjs +94 -106
  14. package/components/calendar.cjs +1 -0
  15. package/components/calendar.d.ts +77 -0
  16. package/components/calendar.mjs +483 -0
  17. package/components/dataGrid/components/dataGridBooleanValue.d.ts +11 -0
  18. package/components/dataGrid/components/dataGridDateParts.d.ts +40 -0
  19. package/components/dataGrid/components/dataGridDateValue.d.ts +14 -0
  20. package/components/dataGrid/contracts/dataGridContract.d.ts +38 -11
  21. package/components/dataGrid/models/columnModel.d.ts +3 -1
  22. package/components/dataGrid/models/editModel.d.ts +3 -1
  23. package/components/dataGrid/models/localeText.d.ts +4 -0
  24. package/components/dataGrid/useDateParts.d.ts +17 -0
  25. package/components/dataGrid.cjs +3 -3
  26. package/components/dataGrid.mjs +797 -664
  27. package/components/dateField.cjs +1 -0
  28. package/components/dateField.d.ts +78 -0
  29. package/components/dateField.mjs +313 -0
  30. package/components/datePicker.cjs +1 -0
  31. package/components/datePicker.d.ts +120 -0
  32. package/components/datePicker.mjs +529 -0
  33. package/components/dateTime.cjs +1 -0
  34. package/components/dateTime.d.ts +23 -0
  35. package/components/dateTime.mjs +34 -0
  36. package/components/dialog.cjs +1 -1
  37. package/components/dialog.mjs +87 -75
  38. package/components/overlay.cjs +1 -1
  39. package/components/overlay.mjs +1 -1
  40. package/components/semantics.d.ts +29 -29
  41. package/components/timeZoneSelect.cjs +1 -0
  42. package/components/timeZoneSelect.d.ts +52 -0
  43. package/components/timeZoneSelect.mjs +74 -0
  44. package/components/toaster.cjs +1 -1
  45. package/components/toaster.mjs +1 -1
  46. package/dataGridDateParts.cjs +1 -0
  47. package/dataGridDateParts.mjs +223 -0
  48. package/dataGridList.cjs +1 -1
  49. package/dataGridList.mjs +328 -365
  50. package/dataGridListLayout.cjs +1 -0
  51. package/dataGridListLayout.mjs +49 -0
  52. package/date-environment.cjs +1 -0
  53. package/date-environment.mjs +29 -0
  54. package/date-input.cjs +1 -0
  55. package/date-input.mjs +346 -0
  56. package/date-math.cjs +1 -0
  57. package/date-math.mjs +317 -0
  58. package/date.cjs +1 -0
  59. package/date.d.ts +40 -0
  60. package/date.mjs +4 -0
  61. package/dates.cjs +1 -0
  62. package/dates.mjs +689 -0
  63. package/docs/components.md +6 -1
  64. package/package.json +118 -26
  65. package/react/boxComponent.d.ts +1 -1
  66. package/react/date/dateChange.d.ts +18 -0
  67. package/react/date/dateEnvironment.d.ts +34 -0
  68. package/react-shared.cjs +1 -1
  69. package/react-shared.mjs +1 -1
  70. package/ssg.cjs +1 -1
  71. package/ssg.mjs +1 -1
  72. package/utils/date/calendar.d.ts +44 -0
  73. package/utils/date/calendarModel.d.ts +46 -0
  74. package/utils/date/dateTime.d.ts +144 -0
  75. package/utils/date/fieldModel.d.ts +74 -0
  76. package/utils/date/format.d.ts +39 -0
  77. package/utils/date/iso.d.ts +40 -0
  78. package/utils/date/locale.d.ts +17 -0
  79. package/utils/date/parse.d.ts +20 -0
  80. package/utils/date/settings.d.ts +26 -0
  81. package/utils/date/value.d.ts +43 -0
  82. package/utils/date/zoneOptions.d.ts +19 -0
  83. package/utils/date/zones.d.ts +32 -0
@@ -0,0 +1,74 @@
1
+ import { Disambiguation } from './zones';
2
+ /** What a field edits: a day, a time of day, or both. */
3
+ export type FieldType = 'date' | 'time' | 'datetime';
4
+ /** How fine a time is edited. */
5
+ export type FieldGranularity = 'minute' | 'second';
6
+ /** A part of a field a person edits, one number at a time. */
7
+ export type SegmentType = 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second' | 'dayPeriod';
8
+ export interface Segment {
9
+ type: SegmentType | 'literal';
10
+ /** What a literal reads — a `/`, a `.`, a `, `. */
11
+ text: string;
12
+ }
13
+ export interface FieldConfig {
14
+ type: FieldType;
15
+ locale: string;
16
+ hourCycle: 12 | 24;
17
+ granularity: FieldGranularity;
18
+ }
19
+ /** A field part-way through being filled in: one number per segment, `dayPeriod` 0 for AM and 1 for PM. */
20
+ export type Draft = Partial<Record<SegmentType, number>>;
21
+ /**
22
+ * The segments in the order the locale writes them, with its own separators — `dd.mm.yyyy` in Moldova,
23
+ * `mm/dd/yyyy` in the US, `yyyy-mm-dd` in Sweden. Read off `formatToParts`, so no locale table ships, and on
24
+ * the Gregorian calendar with Latin digits whatever the locale's default, since the field edits numbers.
25
+ */
26
+ export declare function segmentsFor(config: FieldConfig): Segment[];
27
+ /** The editable segments alone. */
28
+ export declare function editable(segments: readonly Segment[]): SegmentType[];
29
+ /** The values a segment takes. A day's top follows the month and year typed so far — 29 in a leap February. */
30
+ export declare function rangeOf(type: SegmentType, draft: Draft, config: FieldConfig): {
31
+ min: number;
32
+ max: number;
33
+ };
34
+ /** Up or down by `delta`, wrapping inside the segment's range the way a clock does. An empty segment takes its placeholder. */
35
+ export declare function step(draft: Draft, type: SegmentType, delta: number, config: FieldConfig, placeholder: Draft): Draft;
36
+ /** How far Page Up and Page Down move a segment. */
37
+ export declare const PAGE_STEP: Record<SegmentType, number>;
38
+ export interface Typed {
39
+ draft: Draft;
40
+ /** The digits typed into this segment so far, which a next digit appends to. */
41
+ buffer: string;
42
+ /** Whether no further digit could make sense here, so focus moves on. */
43
+ advance: boolean;
44
+ }
45
+ /**
46
+ * One digit typed into a segment. It appends while the number still fits the range and starts again when it
47
+ * would not, and focus moves on as soon as another digit could not fit — `4` in a month is April at once,
48
+ * `1` waits for a `0`, `1` or `2`.
49
+ */
50
+ export declare function typeDigit(draft: Draft, type: SegmentType, buffer: string, digit: string, config: FieldConfig): Typed;
51
+ /** A letter typed into the AM/PM segment: the first letter of either period in the locale, or `a`/`p`. */
52
+ export declare function typePeriod(draft: Draft, letter: string, locale: string): Draft | null;
53
+ /** What a segment shows: its number padded, the digits being typed, AM/PM, or its placeholder when empty. */
54
+ export declare function segmentText(type: SegmentType, draft: Draft, buffer: string, locale: string): string;
55
+ export interface FieldValueOptions {
56
+ /** The zone a date-time is an instant in; `null` keeps it a wall clock with no zone. */
57
+ zone: string | null;
58
+ disambiguation?: Disambiguation;
59
+ }
60
+ /** Whether every segment the field shows has a number. */
61
+ export declare function isComplete(draft: Draft, segments: readonly Segment[]): boolean;
62
+ /**
63
+ * The value a draft spells, or `null` while a segment is empty. A day past the month's end (31 typed before a
64
+ * February) is pulled back onto its last day, the way a calendar would read it.
65
+ */
66
+ export declare function valueOf(draft: Draft, segments: readonly Segment[], config: FieldConfig, options: FieldValueOptions): string | null;
67
+ /** A value taken apart into a draft, on `zone`'s wall clock. Anything unreadable is an empty draft. */
68
+ export declare function draftOf(value: string | null | undefined, config: FieldConfig, zone: string | null): Draft;
69
+ /** The segments a draft keeps when the config changes shape — a 12-hour clock turned to 24 keeps the time. */
70
+ export declare function reshape(draft: Draft, from: FieldConfig, to: FieldConfig): Draft;
71
+ /** The times of a day every `step` minutes from midnight — what a time list offers. */
72
+ export declare function timeSlots(step: number): string[];
73
+ /** The slot a time falls in, so a list highlights 14:30 for 14:37 on a half-hour step. */
74
+ export declare function slotOf(time: string | null, step: number): string | null;
@@ -0,0 +1,39 @@
1
+ import { DateInput } from './value';
2
+ import { ZoneInput } from './zones';
3
+ /** What `Intl.DateTimeFormat` takes, less the zone, which is spelt `zone` here and accepts `'local'`. */
4
+ export interface FormatOptions extends Omit<Intl.DateTimeFormatOptions, 'timeZone'> {
5
+ /** A BCP 47 tag. Default: the configured locale, or the runtime's. */
6
+ locale?: string;
7
+ /** The wall clock an instant is shown on. Default `'local'`. A date, a time or a date-time has no zone, so this does nothing to one. */
8
+ zone?: ZoneInput;
9
+ }
10
+ /** One formatter per locale and option set: building one costs ~40µs and formatting with a cached one ~4µs. */
11
+ export declare function formatter(locale: string, options: Intl.DateTimeFormatOptions): Intl.DateTimeFormat;
12
+ /**
13
+ * A value in the reader's words: `19 Oct 2026`, `14:30`, `Oct 19, 2026, 2:30 PM`. Pass `dateStyle`/`timeStyle`
14
+ * or the component options (`month: 'long'`) for another shape; with none, the kind decides. Returns `''` for
15
+ * an input that is not a date at all, so a missing value renders as nothing.
16
+ */
17
+ export declare function format(input: DateInput, options?: FormatOptions): string;
18
+ export declare function tidy(text: string): string;
19
+ /** The same, as parts — what a field builds its segments from. */
20
+ export declare function formatToParts(input: DateInput, options?: FormatOptions): Intl.DateTimeFormatPart[];
21
+ /** Two values as one range, `Oct 19 – 23, 2026`, with what they share written once. */
22
+ export declare function formatRange(start: DateInput, end: DateInput, options?: FormatOptions): string;
23
+ export interface RelativeOptions {
24
+ locale?: string;
25
+ /** What "now" is. Default the current moment; pass one a server rendered with, so the browser agrees with it. */
26
+ now?: DateInput;
27
+ zone?: ZoneInput;
28
+ /** `'auto'` (default) says `yesterday` and `in 2 days`; `'always'` says `1 day ago`. */
29
+ numeric?: 'auto' | 'always';
30
+ style?: 'long' | 'short' | 'narrow';
31
+ }
32
+ /** `3 minutes ago`, `tomorrow`, `in 2 weeks`. A date is counted in calendar days, so yesterday is yesterday at any hour. */
33
+ export declare function formatRelative(input: DateInput, options?: RelativeOptions): string;
34
+ /** What a zone is called at an instant: `Eastern European Summer Time`, `EEST`, `GMT+3`. */
35
+ export declare function zoneName(zone?: ZoneInput, options?: {
36
+ locale?: string;
37
+ style?: Intl.DateTimeFormatOptions['timeZoneName'];
38
+ at?: DateInput;
39
+ }): string;
@@ -0,0 +1,40 @@
1
+ import { DateTimeFields } from './calendar';
2
+ import { Disambiguation } from './zones';
3
+ /**
4
+ * The four things a date value can be, and the string each one is written as:
5
+ *
6
+ * - `date` — a day with no time and no zone: `2026-10-19`. A birthday, a due date.
7
+ * - `time` — a wall-clock time with no date: `14:30:00`. Opening hours.
8
+ * - `datetime` — a date and a time with no zone: `2026-10-19T14:30:00`. "Local" in the sense of *wherever you
9
+ * are* — an alarm, a train timetable. Temporal's `PlainDateTime`.
10
+ * - `instant` — one moment in time, written with the offset it was read in: `2026-10-19T14:30:00+03:00`, or
11
+ * `…Z` in UTC. Anything stored, compared across zones or sent to a server.
12
+ */
13
+ export type DateKind = 'date' | 'time' | 'datetime' | 'instant';
14
+ /** A value taken apart: the wall clock as written, plus — for an instant — the offset and zone it was written in. */
15
+ export interface ParsedValue {
16
+ kind: DateKind;
17
+ fields: DateTimeFields;
18
+ /** Minutes east of UTC. Instants only. */
19
+ offset: number;
20
+ /** The IANA zone named in brackets (`…+03:00[Europe/Chisinau]`), when there was one. */
21
+ zone?: string;
22
+ }
23
+ /** The epoch an instant names. */
24
+ export declare function epochOf(value: ParsedValue): number;
25
+ /**
26
+ * Reads an ISO 8601 / RFC 3339 / RFC 9557 string: a date, a time, a date-time, or one with an offset (`Z`,
27
+ * `+03:00`) and optionally a bracketed zone. `T` or a space between the halves, seconds and fractions
28
+ * optional, the basic form (`20261019T1430`) too. A bracketed zone with no offset is resolved in that zone.
29
+ */
30
+ export declare function parseIso(input: string, disambiguation?: Disambiguation): ParsedValue | null;
31
+ export declare function dateText(fields: DateTimeFields): string;
32
+ /** Seconds always, milliseconds when there are any — Temporal's rule, so a value never changes length with its content. */
33
+ export declare function timeText(fields: DateTimeFields): string;
34
+ /** The canonical string for a value. An instant in UTC is written `Z`; in any other zone with its offset. */
35
+ export declare function toIso(value: ParsedValue, zoneSuffix?: boolean): string;
36
+ export declare function dateValue(fields: {
37
+ year: number;
38
+ month: number;
39
+ day: number;
40
+ }): ParsedValue;
@@ -0,0 +1,17 @@
1
+ /** Which day a week starts on and which days are the weekend. Days count from 0, Sunday, the way `Date#getDay` does. */
2
+ export interface WeekInfo {
3
+ firstDay: number;
4
+ weekend: readonly number[];
5
+ }
6
+ /** The locale's week, from `Intl.Locale#getWeekInfo` where the engine has it and from CLDR's table where it does not. */
7
+ export declare function weekInfo(locale?: string): WeekInfo;
8
+ /** Whether the locale reads the clock in 12 hours or 24. */
9
+ export declare function hourCycleOf(locale?: string): 12 | 24;
10
+ /** January first, in the locale's words. */
11
+ export declare function monthNames(locale?: string, style?: 'long' | 'short' | 'narrow'): string[];
12
+ /** Sunday first — rotate by `weekInfo().firstDay` for the order the locale reads a week in. */
13
+ export declare function weekdayNames(locale?: string, style?: 'long' | 'short' | 'narrow'): string[];
14
+ /** The locale's words for AM and PM. */
15
+ export declare function dayPeriodNames(locale?: string): [string, string];
16
+ /** What the locale calls a date field — `Jahr`, `месяц`, `hour` — for naming a segment to a screen reader. */
17
+ export declare function fieldName(field: 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second' | 'dayPeriod' | 'timeZoneName', locale?: string): string;
@@ -0,0 +1,20 @@
1
+ import { DateKind } from './iso';
2
+ import { DateInput, ZoneOptions } from './value';
3
+ export interface ParseOptions extends ZoneOptions {
4
+ /** What to hand back. Default: whatever the input turned out to be — a date, a time, a date-time or an instant. */
5
+ kind?: DateKind;
6
+ /** Whose order `03/04/2026` is read in. Default the configured locale, or the runtime's. */
7
+ locale?: string;
8
+ /** What fills in a year the text leaves out, and the century of a two-digit one. Default today. */
9
+ reference?: DateInput;
10
+ }
11
+ type Order = ('year' | 'month' | 'day')[];
12
+ /** The order the locale writes a numeric date in: `day month year` in Moldova, `month day year` in the US. */
13
+ export declare function dateOrder(locale: string): Order;
14
+ /**
15
+ * Reads whatever a person or a system wrote down: ISO 8601 in any of its spellings, a `Date`, epoch
16
+ * milliseconds, an HTTP date, or text in the locale's own order (`19.10.2026 14:30`, `10/19/2026 2:30 PM`,
17
+ * `19 oct 2026`, `tomorrow`). Hands back the canonical string for `kind`, or `null`.
18
+ */
19
+ export declare function parse(input: DateInput, options?: ParseOptions): string | null;
20
+ export {};
@@ -0,0 +1,26 @@
1
+ /** What the date layer falls back on when a call names no locale and no zone. */
2
+ export interface DateSettings {
3
+ /** A BCP 47 tag. Unset, the runtime's own default — the browser's language, or the server's. */
4
+ locale?: string;
5
+ /**
6
+ * The reader's IANA zone, when the runtime is not the reader. Unset, `'local'` means the runtime's own
7
+ * zone: the browser's in a browser and the server's on a server. A server that knows the reader's zone —
8
+ * from the cookie `zoneCookie()` writes — sets it here, or passes it to the call.
9
+ */
10
+ timeZone?: string;
11
+ }
12
+ /** Merges into what is set; `undefined` clears one key. Returns what was set before, so a test can put it back. */
13
+ export declare function configureDates(next: DateSettings): DateSettings;
14
+ export declare function dateSettings(): Readonly<DateSettings>;
15
+ /** The runtime's own IANA zone: the browser's, or the server's — `process.env.TZ`, which is UTC in most containers. */
16
+ export declare function systemZone(): string;
17
+ /** The reader's zone: the configured one, or the runtime's. */
18
+ export declare function localZone(): string;
19
+ export declare function systemLocale(): string;
20
+ export declare function defaultLocale(): string;
21
+ /** Forgets the runtime's zone and locale, for a test that changes `TZ` under a running process. */
22
+ export declare function resetSystemCaches(): void;
23
+ /** A `document.cookie` string carrying the browser's zone, so a server rendering the next request can read it. */
24
+ export declare function zoneCookie(zone?: string, name?: string): string;
25
+ /** The zone out of a `Cookie` header, or `undefined` — the server half of `zoneCookie()`. */
26
+ export declare function readZoneCookie(header: string | null | undefined, name?: string): string | undefined;
@@ -0,0 +1,43 @@
1
+ import { DateTimeFields } from './calendar';
2
+ import { DateKind, ParsedValue } from './iso';
3
+ import { Disambiguation, ZoneInput } from './zones';
4
+ /** Anything the date layer reads: an ISO string, a `Date`, or epoch milliseconds. `null` and `undefined` read as nothing. */
5
+ export type DateInput = string | number | Date | null | undefined;
6
+ export interface ZoneOptions {
7
+ /**
8
+ * The zone a wall clock is read or written in. Default `'local'` — the reader's zone in a browser, and on
9
+ * a server the configured one (`configureDates({ timeZone })`) or the server's own.
10
+ */
11
+ zone?: ZoneInput;
12
+ /** What a wall-clock time a zone skips or repeats means. Default `'compatible'`. */
13
+ disambiguation?: Disambiguation;
14
+ }
15
+ /** An instant re-expressed in `zone`: same moment, that zone's wall clock and offset. */
16
+ export declare function instantIn(epoch: number, zone: string): ParsedValue;
17
+ /**
18
+ * Takes any input apart. A string is ISO 8601 / RFC 3339 / RFC 9557, or — for what a server or a mail header
19
+ * writes (`Mon, 19 Oct 2026 14:30:00 GMT`) — whatever `Date.parse` reads, as long as it names its offset.
20
+ */
21
+ export declare function read(input: DateInput, disambiguation?: Disambiguation): ParsedValue | null;
22
+ /** An instant written in UTC (`…Z`) with no zone named: the shape a `Date`, a server and JSON all write. */
23
+ export declare function utcInstant(epoch: number): ParsedValue;
24
+ /**
25
+ * The zone an instant is read in: the one asked for, the one it names in brackets, or the reader's. Its offset alone
26
+ * does not name a zone — `…Z` from a server is a moment, not a statement about where anybody is.
27
+ */
28
+ export declare function zoneOf(value: ParsedValue, zone?: ZoneInput): string;
29
+ /** A result written the way its input was: `…Z` stays `…Z`, anything else takes the zone it was worked out in. */
30
+ export declare function written(source: ParsedValue, epoch: number, zone: string): ParsedValue;
31
+ /**
32
+ * A value as another kind, in `zone` — the one conversion everything else is written on. Returns `null` for a
33
+ * conversion with nothing to go on: a time has no date, so it has no instant either.
34
+ */
35
+ export declare function convert(value: ParsedValue, kind: DateKind, options?: ZoneOptions): ParsedValue | null;
36
+ /** The canonical string for any input as `kind`, or `null`. */
37
+ export declare function as(input: DateInput, kind: DateKind, options?: ZoneOptions): string | null;
38
+ /** The epoch an input names — a date is its midnight and a date-time its wall clock, both in `zone`. */
39
+ export declare function epochFor(value: ParsedValue, options?: ZoneOptions): number | null;
40
+ /** The wall clock a value shows: its own fields, or for an instant the fields in `zone`. */
41
+ export declare function wallOf(value: ParsedValue, zone?: ZoneInput): DateTimeFields;
42
+ /** A value of the same kind built from a new wall clock, re-resolved in its zone when it is an instant. */
43
+ export declare function withWall(value: ParsedValue, fields: DateTimeFields, options?: ZoneOptions): ParsedValue;
@@ -0,0 +1,19 @@
1
+ /** One zone as a list offers it. */
2
+ export interface ZoneOption {
3
+ /** The IANA name, `Europe/Chisinau` — the value. */
4
+ id: string;
5
+ /** The place, `Chisinau`, which is what people look for. */
6
+ city: string;
7
+ /** The part before the place, `Europe`. */
8
+ region: string;
9
+ /** Minutes east of UTC right now. */
10
+ offset: number;
11
+ /** `UTC+03:00`. */
12
+ offsetText: string;
13
+ /** The label a list shows and searches: `Chisinau (UTC+03:00)`. */
14
+ label: string;
15
+ }
16
+ /** Every zone, or those given, with the offset each is at `at` — ordered west to east, then by place. */
17
+ export declare function zoneOptions(zones?: readonly string[], at?: number): ZoneOption[];
18
+ /** Matches a query against the place, the region, the IANA name and the offset, so `chis`, `europe` and `+3` all find Chisinau. */
19
+ export declare function matchZone(option: ZoneOption, query: string): boolean;
@@ -0,0 +1,32 @@
1
+ import { DateTimeFields } from './calendar';
2
+ /**
3
+ * Where a zone input points: `'local'` is the reader (`localZone()`), `'system'` the runtime, `'utc'` UTC,
4
+ * and anything else an IANA name (`'Europe/Chisinau'`) or a fixed offset (`'+03:00'`).
5
+ */
6
+ export type ZoneInput = 'local' | 'system' | 'utc' | (string & {});
7
+ /**
8
+ * What to do with a wall-clock time a zone skips or repeats — Temporal's four answers. `'compatible'` takes
9
+ * the later reading of a skipped time and the earlier of a repeated one, which is what every OS does.
10
+ */
11
+ export type Disambiguation = 'compatible' | 'earlier' | 'later' | 'reject';
12
+ /** Minutes east of UTC for a fixed offset (`'+03:00'`, `'-0530'`), or `undefined` for anything else. */
13
+ export declare function fixedOffset(zone: string): number | undefined;
14
+ /** `+03:00`, `-05:30`, `+00:00`. A historical offset carrying seconds keeps them. */
15
+ export declare function formatOffset(minutes: number): string;
16
+ /** The zone an input resolves to: `'UTC'`, a fixed offset in `+hh:mm` form, an IANA name — or `null` for nonsense. */
17
+ export declare function normalizeZone(zone: ZoneInput | undefined): string | null;
18
+ export declare function isValidZone(zone: string): boolean;
19
+ /** `normalizeZone`, with nonsense as an error rather than a `null` to forget about. */
20
+ export declare function requireZone(zone: ZoneInput | undefined): string;
21
+ /** Minutes east of UTC that `zone` is at `epoch` — `+180` for Chisinau in summer, `-240` for New York. */
22
+ export declare function offsetAt(zone: string, epoch: number): number;
23
+ /** The wall clock `zone` shows at `epoch`. */
24
+ export declare function wallAt(zone: string, epoch: number): DateTimeFields;
25
+ /**
26
+ * The instant a wall-clock time names in `zone`. A day either side of it brackets every offset the zone could
27
+ * be at, so the candidates are at most two: none in a spring-forward gap, two in a fall-back overlap.
28
+ * Returns `null` only for `'reject'` on a time that is skipped or repeated.
29
+ */
30
+ export declare function wallToEpoch(fields: DateTimeFields, zone: string, disambiguation?: Disambiguation): number | null;
31
+ /** Every IANA zone the runtime knows, `UTC` first. */
32
+ export declare function timeZones(): readonly string[];