import { type Integer, type IntegralNumber, type MathematicalValue } from '../spec-types.mjs'; import { type ISODateRecord, type TemporalPlainDateObject } from '../../intrinsics/Temporal/PlainDate.mts'; import { type TemporalZonedDateTimeObject } from '../../intrinsics/Temporal/ZonedDateTime.mts'; import { UnsignedRoundingMode } from './addition.mts'; import { RoundingMode } from './addition.mts'; import { type CalendarFieldsRecord, type CalendarType } from './calendar.mts'; import { Value, ObjectValue, type PlainCompletion, type PlainEvaluator, type PropertyKeyValue } from '#self'; export type EpochNanoseconds = Integer & { specName?: 'EpochNanoseconds'; }; export type Float64RepresentableInteger = IntegralNumber; /** https://tc39.es/proposal-temporal/#sec-isodatetoepochdays */ export declare function ISODateToEpochDays(year: Integer, month: Integer, date: Integer): Integer; /** https://tc39.es/proposal-temporal/#sec-epochdaystoepochms */ export declare function EpochDaysToEpochMs(day: Integer, time: Integer): Integer; /** https://tc39.es/proposal-temporal/#eqn-EpochTimeToDayNumber */ export declare function EpochTimeToDayNumber(t: Integer): Integer; /** https://tc39.es/proposal-temporal/#sec-mathematicaldaysinyear */ export declare function MathematicalDaysInYear(y: Integer): Integer; /** https://tc39.es/proposal-temporal/#sec-epochdaynumberforyear */ export declare function EpochDayNumberForYear(y: Integer): Integer; /** https://tc39.es/proposal-temporal/#sec-epochtimeforyear */ export declare function EpochTimeForYear(y: Integer): Integer; /** https://tc39.es/proposal-temporal/#sec-epochtimetoepochyear */ export declare function EpochTimeToEpochYear(t: Integer): Integer; /** https://tc39.es/proposal-temporal/#sec-mathematicalinleapyear */ export declare function MathematicalInLeapYear(t: Integer): Integer; /** https://tc39.es/proposal-temporal/#sec-epochtimetomonthinyear */ export declare function EpochTimeToMonthInYear(t: Integer): Integer; /** https://tc39.es/proposal-temporal/#sec-epochtimetodayinyear */ export declare function EpochTimeToDayInYear(t: Integer): Integer; /** https://tc39.es/proposal-temporal/#sec-epochtimetodate */ export declare function EpochTimeToDate(t: Integer): Integer; /** https://tc39.es/proposal-temporal/#sec-epochtimetoweekday */ export declare function EpochTimeToWeekDay(t: Integer): Integer; /** https://tc39.es/proposal-temporal/#sec-checkisodaysrange */ export declare function CheckISODaysRange(isoDate: ISODateRecord): PlainCompletion; /** https://tc39.es/proposal-temporal/#sec-temporal-units */ export declare enum TemporalUnit { Year = "Year", Month = "Month", Week = "Week", Day = "Day", Hour = "Hour", Minute = "Minute", Second = "Second", Millisecond = "Millisecond", Microsecond = "Microsecond", Nanosecond = "Nanosecond" } /** https://tc39.es/proposal-temporal/#table-temporal-units */ export type TimeUnit = TemporalUnit.Hour | TemporalUnit.Minute | TemporalUnit.Second | TemporalUnit.Millisecond | TemporalUnit.Microsecond | TemporalUnit.Nanosecond; export declare function isTimeUnit(unit: TemporalUnit): unit is TimeUnit; /** https://tc39.es/proposal-temporal/#table-temporal-units */ export type DateUnit = TemporalUnit.Year | TemporalUnit.Month | TemporalUnit.Week | TemporalUnit.Day; export declare function isDateUnit(unit: TemporalUnit): unit is DateUnit; /** https://tc39.es/proposal-temporal/#table-temporal-units */ export declare const Table21_LengthInNanoSeconds: { readonly Day: bigint; readonly Hour: bigint; readonly Minute: bigint; readonly Second: bigint; readonly Millisecond: bigint; readonly Microsecond: bigint; readonly Nanosecond: 1n; }; export declare const Table21_CategoryByValue: { readonly Year: 'date'; readonly Month: 'date'; readonly Week: 'date'; readonly Day: 'date'; readonly Hour: 'time'; readonly Minute: 'time'; readonly Second: 'time'; readonly Millisecond: 'time'; readonly Microsecond: 'time'; readonly Nanosecond: 'time'; }; /** https://tc39.es/proposal-temporal/#sec-gettemporaloverflowoption */ export declare function GetTemporalOverflowOption(options: ObjectValue): PlainEvaluator<'constrain' | 'reject'>; /** https://tc39.es/proposal-temporal/#sec-gettemporaldisambiguationoption */ export declare function GetTemporalDisambiguationOption(options: ObjectValue): PlainEvaluator<'compatible' | 'earlier' | 'later' | 'reject'>; /** https://tc39.es/proposal-temporal/#sec-negateroundingmode */ export declare function NegateRoundingMode(roundingMode: RoundingMode): RoundingMode; export type TemporalOffsetOption = 'prefer' | 'use' | 'ignore' | 'reject'; /** https://tc39.es/proposal-temporal/#sec-gettemporaloffsetoption */ export declare function GetTemporalOffsetOption(options: ObjectValue, fallback: TemporalOffsetOption): PlainEvaluator; export type ShowCalendarNameOption = 'auto' | 'always' | 'never' | 'critical'; /** https://tc39.es/proposal-temporal/#sec-gettemporalshowcalendarnameoption */ export declare function GetTemporalShowCalendarNameOption(options: ObjectValue): PlainEvaluator; export type ShowTimeZoneNameOption = 'auto' | 'never' | 'critical'; /** https://tc39.es/proposal-temporal/#sec-gettemporalshowtimezonenameoption */ export declare function GetTemporalShowTimeZoneNameOption(options: ObjectValue): PlainEvaluator; /** https://tc39.es/proposal-temporal/#sec-gettemporalshowoffsetoption */ export declare function GetTemporalShowOffsetOption(options: ObjectValue): PlainEvaluator<'auto' | 'never'>; export type DirectionOption = 'next' | 'previous'; /** https://tc39.es/proposal-temporal/#sec-getdirectionoption */ export declare function GetDirectionOption(options: ObjectValue): PlainEvaluator; /** https://tc39.es/proposal-temporal/#sec-validatetemporalroundingincrement */ export declare function ValidateTemporalRoundingIncrement(increment: Integer, dividend: Integer, inclusive: boolean): PlainCompletion; /** https://tc39.es/proposal-temporal/#sec-gettemporalfractionalseconddigitsoption */ export declare function GetTemporalFractionalSecondDigitsOption(options: ObjectValue): PlainEvaluator<'auto' | Integer>; /** https://tc39.es/proposal-temporal/#sec-tosecondsstringprecisionrecord */ export declare function ToSecondsStringPrecisionRecord(smallestUnit: Exclude | 'unset', fractionalDigitCount: 'auto' | Integer): { Precision: TemporalUnit.Minute; Unit: TemporalUnit.Minute; Increment: 1n; } | { Precision: Integer; Unit: TemporalUnit.Minute | TemporalUnit.Second | TemporalUnit.Millisecond | TemporalUnit.Microsecond | TemporalUnit.Nanosecond; Increment: bigint; } | { Precision: 'auto' | Integer; Unit: TemporalUnit.Nanosecond; Increment: 1n | 10n | 100n; }; /** https://tc39.es/proposal-temporal/#sec-gettemporalunitvaluedoption */ export declare function GetTemporalUnitValuedOption(options: ObjectValue, key: PropertyKeyValue | string, defaultV: 'required' | 'unset'): PlainEvaluator; /** https://tc39.es/proposal-temporal/#sec-temporal-validatetemporalunitvaluedoption */ export declare function ValidateTemporalUnitValue(value: TemporalUnit | 'unset' | 'auto', unitGroup: 'date' | 'time' | 'datetime', extraValues?: Array): PlainCompletion; /** https://tc39.es/proposal-temporal/#sec-gettemporalrelativetooption */ export declare function GetTemporalRelativeToOption(options: ObjectValue): PlainEvaluator<{ PlainRelativeTo?: TemporalPlainDateObject; ZonedRelativeTo?: TemporalZonedDateTimeObject; }>; /** https://tc39.es/proposal-temporal/#sec-largeroftwotemporalunits */ export declare function LargerOfTwoTemporalUnits(u1: TemporalUnit, u2: TemporalUnit): TemporalUnit; /** https://tc39.es/proposal-temporal/#sec-iscalendarunit */ export declare function IsCalendarUnit(unit: TemporalUnit): unit is TemporalUnit.Year | TemporalUnit.Month | TemporalUnit.Week; /** https://tc39.es/proposal-temporal/#sec-maximumtemporaldurationroundingincrement */ export declare function MaximumTemporalDurationRoundingIncrement(unit: TemporalUnit): 24n | 60n | 1000n | 'unset'; /** https://tc39.es/proposal-temporal/#sec-ispartialtemporalobject */ export declare function IsPartialTemporalObject(value: Value): PlainEvaluator; /** https://tc39.es/proposal-temporal/#sec-formatfractionalseconds */ export declare function FormatFractionalSeconds(subSecondNanoseconds: Integer, precision: Integer | 'auto'): string; /** https://tc39.es/proposal-temporal/#sec-formattimestring */ export declare function FormatTimeString(hour: Integer, minute: Integer, second: Integer, subSecondNanoseconds: Integer, precision: Integer | TemporalUnit.Minute | 'auto', style?: 'separated' | 'unseparated'): string; /** https://tc39.es/proposal-temporal/#sec-getunsignedroundingmode */ export declare function GetUnsignedRoundingMode(roundingMode: RoundingMode, sign: 'negative' | 'positive'): UnsignedRoundingMode; /** https://tc39.es/proposal-temporal/#sec-applyunsignedroundingmode */ export declare function ApplyUnsignedRoundingMode(x: MathematicalValue, r1: MathematicalValue, r2: MathematicalValue, unsignedRoundingMode?: UnsignedRoundingMode): MathematicalValue; /** https://tc39.es/proposal-temporal/#sec-roundnumbertoincrement */ export declare function RoundNumberToIncrement(x: MathematicalValue, increment: Integer, roundingMode: RoundingMode): Integer; /** https://tc39.es/proposal-temporal/#sec-roundnumbertoincrementasifpositive */ export declare function RoundNumberToIncrementAsIfPositive(x: MathematicalValue, increment: Integer, roundingMode: RoundingMode): Integer; /** https://tc39.es/proposal-temporal/#sec-temporal-tooffsetstring */ export declare function ToOffsetString(argument: Value): PlainEvaluator; /** https://tc39.es/proposal-temporal/#sec-temporal-isodatetofields */ export declare function ISODateToFields(calendar: CalendarType, isoDate: ISODateRecord, type: 'date' | 'year-month' | 'month-day'): CalendarFieldsRecord; /** https://tc39.es/proposal-temporal/#sec-temporal-getdifferencesettings */ export declare function GetDifferenceSettings(operation: 'since' | 'until', options: ObjectValue, unitGroup: 'date' | 'time' | 'datetime', disallowedUnits: readonly TemporalUnit[], fallbackSmallestUnit: TemporalUnit, smallestLargestDefaultUnit: TemporalUnit): PlainEvaluator<{ SmallestUnit: TemporalUnit; LargestUnit: TemporalUnit; RoundingMode: RoundingMode; RoundingIncrement: bigint; }>; //# sourceMappingURL=temporal.d.mts.map