import { Segment as DateSegment } from './date.js'; import { Segment as TimeSegment } from './time.js'; type Segment = DateSegment & TimeSegment; /** * DateTime format: * - yyyy-MM-dd'T'HH:mm (e.g. 1988-04-21T00:00, 0030-04-30T23:59, -0002-12-31T13:32) * - yyyy-MM-dd'T'HH:mm:ss (e.g. 1988-04-21T00:00:00, 0030-04-30T23:59:59, -0002-12-31T13:32:30) * - yyyy-MM-dd'T'HH:mm:ss.SSS (e.g. 1988-04-21T00:00:00.000, 0030-04-30T23:59:59.999, -0002-12-31T13:32:30.378) */ declare enum Format { /** * yyyy-MM-dd'T'HH:mm (e.g. 1988-04-21T00:00, 0030-04-30T23:59, -0002-12-31T13:32) */ yyyMMddTHHmm = "yyyy-MM-dd'T'HH:mm", /** * yyyy-MM-dd'T'HH:mm:ss (e.g. 1988-04-21T00:00:00, 0030-04-30T23:59:59, -0002-12-31T13:32:30) */ yyyMMddTHHmmss = "yyyy-MM-dd'T'HH:mm:ss", /** * yyyy-MM-dd'T'HH:mm:ss.SSS (e.g. 1988-04-21T00:00:00.000, 0030-04-30T23:59:59.999, -0002-12-31T13:32:30.378) */ yyyMMddTHHmmssSSS = "yyyy-MM-dd'T'HH:mm:ss.SSS" } type InputFormat = Format | keyof typeof Format; /** * Split datetime into date and time segments * @param value Datetime string * @returns object containing date and time */ declare const split: (value: string) => { date: string; time: string; }; /** * Try to guess datetime format * @param value Value to test * @returns format DateTime format */ declare const getFormat: (value: string) => Format | null; /** * Check if passed value is a valid date time string. * For instance: 1988-04-21T00:00, 0030-04-30T23:59.59, -0002-12-31T13:32:30.378 * @param value Value to check * @param [format] The format to validate value against. If not defined, try to guess the format * @returns value is valid. */ declare const isValid: (value: string, format?: InputFormat | null) => boolean; /** * Get Local/UTC values segments of DateTime object or value string * @param value Valid datetime or a string in a format 1988-04-21T00:00, 0030-04-30T23:59.59, -0002-12-31T13:32:30.378 * @param [isUTC=false] True to get UTC values, false to get Local values * @returns Segment */ declare const toSegment: (value: string | Date, isUTC?: boolean) => Segment; /** * Format Date or Segment to Local Date Time string. * @param value A valid Date or Segment * @param [format='yyyy-MM-dd'T'HH:mm'] Date Time format * @returns A formatted time */ declare const format: (value: Segment | Date, format?: InputFormat) => string; /** * Format Date or Segment to UTC Date Time string. * @param value A valid Date or Segment * @param [format='yyyy-MM-dd'T'HH:mm'] Date Time format * @returns A formatted time */ declare const utcFormat: (value: Segment | Date, format?: InputFormat) => string; /** * Get Local Date object from value string or Segment. * @param value Value to parse, Segment or 'yyyy-MM-dd\'T\'HH:mm' | 'yyyy-MM-dd\'T\'HH:mm:ss' | 'yyyy-MM-dd\'T\'HH:mm:ss.SSS' * @returns parsed date or invalid date */ declare const parse: (value: string | Segment) => Date; /** * Get UTC Date object from value string or Segment. * @param value Value to parse, Segment or 'yyyy-MM-dd\'T\'HH:mm' | 'yyyy-MM-dd\'T\'HH:mm:ss' | 'yyyy-MM-dd\'T\'HH:mm:ss.SSS' * @returns parsed date or invalid date */ declare const utcParse: (value: string | Segment) => Date; export { Segment, Format, InputFormat, getFormat, isValid, toSegment, format, utcFormat, parse, utcParse, split };