import type { TemporalDurationObject } from '../../intrinsics/Temporal/Duration.mts'; import { type TemporalPlainTimeObject } from '../../intrinsics/Temporal/PlainTime.mts'; import { type RoundingMode } from './addition.mts'; import { type TimeDuration, Value, type ValueEvaluator, ObjectValue, type PlainEvaluator, type PlainCompletion, type FunctionObject, type TimeUnit, TemporalUnit, type Integer } from '#self'; /** https://tc39.es/proposal-temporal/#sec-temporal-time-records */ export interface TimeRecord { readonly Days: Integer; readonly Hour: Integer; readonly Minute: Integer; readonly Second: Integer; readonly Millisecond: Integer; readonly Microsecond: Integer; readonly Nanosecond: Integer; } /** https://tc39.es/proposal-temporal/#sec-temporal-createtimerecord */ export declare function CreateTimeRecord(hour: Integer, minute: Integer, second: Integer, millisecond: Integer, microsecond: Integer, nanosecond: Integer, deltaDays?: Integer): TimeRecord; /** https://tc39.es/proposal-temporal/#sec-temporal-midnighttimerecord */ export declare function MidnightTimeRecord(): TimeRecord; /** https://tc39.es/proposal-temporal/#sec-temporal-noontimerecord */ export declare function NoonTimeRecord(): TimeRecord; /** https://tc39.es/proposal-temporal/#sec-temporal-differencetime */ export declare function DifferenceTime(time1: TimeRecord, time2: TimeRecord): TimeDuration; /** https://tc39.es/proposal-temporal/#sec-temporal-totemporaltime */ export declare function ToTemporalTime(item: Value, options?: Value): ValueEvaluator; /** https://tc39.es/proposal-temporal/#sec-temporal-totimerecordormidnight */ export declare function ToTimeRecordOrMidnight(item: Value): PlainEvaluator; /** https://tc39.es/proposal-temporal/#sec-temporal-regulatetime */ export declare function RegulateTime(hour: Integer, minute: Integer, second: Integer, millisecond: Integer, microsecond: Integer, nanosecond: Integer, overflow: 'constrain' | 'reject'): PlainCompletion; /** https://tc39.es/proposal-temporal/#sec-isvalidtime */ export declare function IsValidTime(hour: Integer, minute: Integer, second: Integer, millisecond: Integer, microsecond: Integer, nanosecond: Integer): boolean; /** https://tc39.es/proposal-temporal/#sec-temporal-balancetime */ export declare function BalanceTime(hour: Integer, minute: Integer, second: Integer, millisecond: Integer, microsecond: Integer, nanosecond: Integer): TimeRecord; /** https://tc39.es/proposal-temporal/#sec-temporal-createtemporaltime */ export declare function CreateTemporalTime(time: TimeRecord, newTarget?: FunctionObject): ValueEvaluator; /** https://tc39.es/proposal-temporal/#table-temporal-temporaltimelike-record-fields */ export interface TemporalTimeLike { Hour: bigint | undefined; Minute: bigint | undefined; Second: bigint | undefined; Millisecond: bigint | undefined; Microsecond: bigint | undefined; Nanosecond: bigint | undefined; } /** https://tc39.es/proposal-temporal/#sec-temporal-totemporaltimerecord */ export declare function ToTemporalTimeRecord(temporalTimeLike: ObjectValue, completeness?: 'partial' | 'complete'): PlainEvaluator; /** https://tc39.es/proposal-temporal/#sec-temporal-timerecordtostring */ export declare function TimeRecordToString(time: TimeRecord, precision: Integer | TemporalUnit.Minute | 'auto'): string; /** https://tc39.es/proposal-temporal/#sec-temporal-comparetimerecord */ export declare function CompareTimeRecord(time1: TimeRecord, time2: TimeRecord): -1n | 0n | 1n; /** https://tc39.es/proposal-temporal/#sec-temporal-addtime */ export declare function AddTime(time: TimeRecord, timeDuration: TimeDuration): TimeRecord; /** https://tc39.es/proposal-temporal/#sec-temporal-roundtime */ export declare function RoundTime(time: TimeRecord, increment: Integer, unit: TimeUnit | TemporalUnit.Day, roundingMode: RoundingMode): TimeRecord; /** https://tc39.es/proposal-temporal/#sec-temporal-differencetemporalplaintime */ export declare function DifferenceTemporalPlainTime(operation: 'since' | 'until', temporalTime: TemporalPlainTimeObject, _other: Value, options: Value): ValueEvaluator; /** https://tc39.es/proposal-temporal/#sec-temporal-adddurationtotime */ export declare function AddDurationToTime(operation: 'add' | 'subtract', temporalTime: TemporalPlainTimeObject, temporalDurationLike: Value): ValueEvaluator; //# sourceMappingURL=plain-time.d.mts.map