import { isly } from "isly"; import { Date } from "../Date"; import { Locale } from "../Locale"; import { Time } from "../Time"; import { TimeSpan } from "../TimeSpan"; import { TimeZone } from "../TimeZone"; import { Numeric as DateTimeNumeric } from "./Numeric"; export type DateTime = string; export declare namespace DateTime { export import Numeric = DateTimeNumeric; const type: isly.String, is: (value: string | any) => value is string, flawed: (value: string | any) => isly.Flaw | false; function split(value: DateTime): { date: Date; time: Time | undefined; timeZoneOffset: TimeZone.Offset | undefined; }; function parse(value: DateTime): globalThis.Date; function create(value: number, resolution?: "days" | "hours" | "minutes" | "seconds" | "milliseconds"): DateTime; function create(value: globalThis.Date): DateTime; function normalize(value: DateTime | string, precision?: Precision): DateTime; function fix(value: DateTime | string): DateTime; const fixIncorrect: typeof fix; function fromLocal(local: DateTime, timeZone: TimeZone): string; const fromLocalDateTime: typeof fromLocal; function now(): DateTime; type Format = Intl.DateTimeFormatOptions; function localize(value: DateTime | globalThis.Date, format: Format, locale?: Locale): string; function localize(value: DateTime | globalThis.Date, locale?: Locale, timeZone?: TimeZone): string; function startOfDay(value: DateTime | Date): DateTime; function endOfDay(value: DateTime | Date): DateTime; function timeZoneOffset(value: DateTime): TimeZone.Offset | ""; const timeZone: typeof timeZoneOffset; function timeZoneShort(value: DateTime): number; type Precision = "hours" | "minutes" | "seconds" | "milliseconds"; function precision(value: DateTime): Precision; function truncate(value: DateTime, precision: Precision): DateTime; function epoch(value: DateTime | globalThis.Date, resolution?: "days" | "hours" | "minutes" | "seconds" | "milliseconds"): number; function next(time: DateTime, span?: number | TimeSpan): DateTime; function previous(time: DateTime, span?: number | TimeSpan): DateTime; function nextMillisecond(time: DateTime, milliseconds?: number): DateTime; function previousMillisecond(time: DateTime, milliseconds?: number): DateTime; function nextSecond(time: DateTime, seconds?: number): DateTime; function previousSecond(time: DateTime, seconds?: number): DateTime; function nextMinute(time: DateTime, minutes?: number): DateTime; function previousMinute(time: DateTime, minutes?: number): DateTime; function nextHour(time: DateTime, hours?: number): DateTime; function previousHour(time: DateTime, hours?: number): DateTime; function nextDay(time: DateTime, days?: number): DateTime; function previousDay(time: DateTime, days?: number): DateTime; function nextMonth(time: DateTime, months?: number): DateTime; function previousMonth(time: DateTime, months?: number): DateTime; function nextYear(time: DateTime, years?: number): DateTime; function previousYear(time: DateTime, years?: number): DateTime; function getDate(time: DateTime): Date; function getTime(time: DateTime): string; function getYear(time: DateTime, options?: { digits?: 2 | 4; }): number; function getMonth(time: DateTime): number; function getDay(time: DateTime): number; function getHour(time: DateTime): number; function getMinute(time: DateTime): number; function getSecond(time: DateTime): number; function getMillisecond(time: DateTime): number; function span(time: DateTime, relative: DateTime, greatestUnit?: "years" | "hours" | "minutes" | "seconds" | "milliseconds"): TimeSpan; const epochStart: "0000-01-01T00:00:00.000Z"; const epochEnd: "9999-12-31T23:59:59.999Z"; function invert(time: DateTime): DateTime; }