import { AddRemoveOperationBasic, DateSourceBasic, DateTimeFormatBasic, DateTimeFormatsMillisAndSecondsBasic, TimeUnit } from '../common'; /** * Adjust an ISO-8601 date/time or a Unix epoch by adding/subtracting a specified amount of time. * @param timestamp An ISO-8601 date/time or a Unix epoch. * @param amount The amount of time by which `timestamp` should be adjusted (positive or negative values). * @param amountUnit The unit of measurement of `amount`. * * @returns The adjusted timestamp in ISO-8601 format. * * @throws {InputRequiredError} "" is a required input but was not provided. * @throws {UnparseableDateError} The date/time could not be parsed. * @throws {UnsupportedTimeZoneError} The time zone is not supported. */ export declare function adjust(timestamp: string | number, amount: number, amountUnit: TimeUnit | TU): string; /** * Adjust an ISO-8601 date/time or a Unix epoch by adding/subtracting a specified amount of time. * @param timestamp An ISO-8601 date/time or a Unix epoch. * @param operation If `amount` should be added or subtracted * @param amount The amount of time by which `timestamp` should be adjusted (positive or negative values). * @param amountUnit The unit of measurement of `amount`. * * @returns The adjusted timestamp in ISO-8601 format. * * @throws {InputRequiredError} "" is a required input but was not provided. * @throws {InvalidAdjustmentOperationError} "" is not a valid adjustment operation. * @throws {UnparseableDateError} The date/time could not be parsed. * @throws {UnsupportedTimeZoneError} The time zone is not supported. */ export declare function adjustBasic(timestamp: string | number, operation: AddRemoveOperationBasic | O, amount: number, amountUnit: TimeUnit | TU): string; /** * Append or overwrite the time zone or offset of an ISO-8601 date/time without adjusting the underlying date/time. * @param timestamp An ISO-8601 date/time. * @param timeZoneOrOffset The time zone or offset to which the resulting timestamp should be converted. Default = UTC. * * @returns The date/time in ISO-8601 format in the specified time zone. * * @throws {InputRequiredError} "" is a required input but was not provided. * @throws {UnparseableDateError} The date/time could not be parsed. * @throws {UnsupportedTimeZoneError} The time zone is not supported. */ export declare function appendTimeZone(timestamp: string, timeZoneOrOffset?: string | number): string; /** * Convert an ISO-8601 date/time or a Unix epoch to an ISO-8601 date/time, custom formatted date/time, or a Unix epoch. * @param timestamp An ISO-8601 date/time or a Unix epoch. * @param outputFormat The format in which the converted timestamp should be returned. Default = ISO-8601. * @param outputFormatString If `outputFormat = 'Custom'`, the format string used to serialize the converted date/time. Default: ISO-8601. * * @returns `timestamp` converted to the specified output format. * * @throws {InputRequiredError} "" is a required input but was not provided. * @throws {UnparseableDateError} The date/time could not be parsed. * @throws {UnsupportedTimeZoneError} The time zone is not supported. */ export declare function convert(timestamp: string | number, outputFormat: DateTimeFormatBasic | F, outputFormatString?: string): string | number; /** * Convert a Unix epoch with the specified unit to an ISO-8601 date/time. * @param epoch The number of milliseconds or seconds since the Unix epoch (specified by `unit`). * @param unit The unit of measurement `epoch`. * * @returns `epoch` converted to an ISO-8601 date/time. * * @throws {InputRequiredError} "" is a required input but was not provided. * @throws {UnparseableDateError} The date/time could not be parsed. * @throws {UnsupportedTimeZoneError} The time zone is not supported. */ export declare function fromEpoch(epoch: number, unit: DateTimeFormatsMillisAndSecondsBasic | TU): string; /** * Parse a date/time and convert it to an ISO-8601 date/time. * @param timestamp An ISO-8601 date/time, SQL date/time, custom formatted date/time, or a Unix epoch. If provided as a * string that is not in ISO-8601 or SQL format, `inputFormatString` must be provided. * @param inputFormat The format of `timestamp`. Default = automatically determined based on the value of `timestamp`. * @param inputFormatString The format string used to parse `timestamp`. Default = any valid ISO-8601 format. * @param inputTimeZoneOrOffset The originating time zone of `timestamp` expressed as either a string or numeric * offset. It is important to note that this time zone/offset will be appended to the parsed timestamp * only if the time zone information is not present in `timestamp`. If `timestamp` contains the time zone information, * that time zone will be used instead and the value of this argument will be ignored. Default = UTC. * * @returns The parsed date/time in ISO-8601 format. * * @throws {InputRequiredError} "" is a required input but was not provided. * @throws {UnparseableDateError} The date/time could not be parsed. * @throws {UnsupportedTimeZoneError} The time zone is not supported. */ export declare function parse(timestamp: string | number, inputFormat?: DateTimeFormatBasic | DateTimeFormatsMillisAndSecondsBasic | F | TU, inputFormatString?: string, inputTimeZoneOrOffset?: string | number): string; /** * Parse a date/time and convert it to an ISO-8601 date/time. * @param dateSource The source of `timestamp`. If `current`, `timestamp` is not required. * @param timestamp An ISO-8601 date/time, SQL date/time, custom formatted date/time, or a Unix epoch. If provided as a * string that is not in ISO-8601 or SQL format, `inputFormatString` must be provided. Not required if `dateSource` is * `current`. * @param inputFormat The format of `timestamp`. Default = automatically determined based on the value of `timestamp`. * @param inputFormatString The format string used to parse `timestamp`. Default = any valid ISO-8601 format. * @param inputTimeZoneOrOffset The originating time zone of `timestamp` expressed as either a string or numeric * offset. Default = UTC. * * @returns The parsed date/time in ISO-8601 format. * * @throws {InputRequiredError} "" is a required input but was not provided. * @throws {InvalidDateSourceError} The date source is invalid. * @throws {UnparseableDateError} The date/time could not be parsed. * @throws {UnsupportedTimeZoneError} The time zone is not supported. */ export declare function parseBasic(dateSource: DateSourceBasic | S, timestamp?: string | number, inputFormat?: DateTimeFormatBasic | DateTimeFormatsMillisAndSecondsBasic | F | TU, inputFormatString?: string, inputTimeZoneOrOffset?: string | number): string; /** * Set the time zone or offset of an ISO-8601 date/time, adjusting the underlying date/time accordingly. * @param timestamp An ISO-8601 date/time. * @param timeZoneOrOffset The time zone or offset to which the resulting timestamp should be converted. Default = UTC. * * @returns The date/time in ISO-8601 format in the specified time zone. * * @throws {InputRequiredError} "" is a required input but was not provided. * @throws {UnparseableDateError} The date/time could not be parsed. * @throws {UnsupportedTimeZoneError} The time zone is not supported. */ export declare function setTimeZone(timestamp: string, timeZoneOrOffset: string | number): string; /** * Convert an ISO-8601 date/time or a Unix epoch to an ISO-8601 **date**. * @param timestamp An ISO-8601 date/time or a Unix epoch. * * @returns The date portion of `timestamp` in ISO-8601 format. * * @throws {InputRequiredError} "" is a required input but was not provided. * @throws {UnparseableDateError} The date/time could not be parsed. * @throws {UnsupportedTimeZoneError} The time zone is not supported. */ export declare function toISODate(timestamp: string | number): string; /** * Convert an ISO-8601 date/time or a Unix epoch to an ISO-8601 **time**. * @param timestamp An ISO-8601 date/time or a Unix epoch. * * @returns The time portion of `timestamp` in ISO-8601 format. * * @throws {InputRequiredError} "" is a required input but was not provided. * @throws {UnparseableDateError} The date/time could not be parsed. * @throws {UnsupportedTimeZoneError} The time zone is not supported. */ export declare function toISOTime(timestamp: string | number): string;