export interface INanoDate extends Date { /** * Returns the unix nanoseconds timestamp as a string. */ getNanoTime: () => string; /** * Formats the date as an ISO RFC3339 timestamp with nanosecond precision. */ toNanoISOString: () => string; } export declare type TimePrecision = "n" | "u" | "ms" | "s" | "m" | "h"; /** * Precision is a map of available Influx time precisions. * @type {Object.} * @example * console.log(Precision.Hours); // => 'h' * console.log(Precision.Minutes); // => 'm' * console.log(Precision.Seconds); // => 's' * console.log(Precision.Milliseconds); // => 'ms' * console.log(Precision.Microseconds); // => 'u' * console.log(Precision.Nanoseconds); // => 'n' */ export declare const Precision: Readonly<{ Hours: string; Microseconds: string; Milliseconds: string; Minutes: string; Nanoseconds: string; Seconds: string; }>; /** * Covers a nanoseconds unix timestamp to a INanoDate for node-influx. The * timestamp is provided as a string to prevent precision loss. * * Please see [A Moment for Times](https://node-influx.github.io/manual/ * usage.html#a-moment-for-times) for a more complete and eloquent explanation * of time handling in this module. * * @param timestamp * @example * const date = toNanoDate('1475985480231035600') * * // You can use the returned Date as a normal date: * expect(date.getTime()).to.equal(1475985480231); * * // We decorate it with two additional methods to read * // nanosecond-precision results: * expect(date.getNanoTime()).to.equal('1475985480231035600'); * expect(date.toNanoISOString()).to.equal('2016-10-09T03:58:00.231035600Z'); */ export declare function toNanoDate(timestamp: string): INanoDate; /** * FormatDate converts the Date instance to Influx's date query format. * @private */ export declare function formatDate(date: Date): string; /** * Converts a Date instance to a timestamp with the specified time precision. * @private */ export declare function dateToTime(date: Date | INanoDate, precision: TimePrecision): string; /** * Converts an ISO-formatted data or unix timestamp to a Date instance. If * the precision is finer than 'ms' the returned value will be a INanoDate. * @private */ export declare function isoOrTimeToDate(stamp: string | number, precision?: TimePrecision): INanoDate; /** * Converts a timestamp to a string with the correct precision. Assumes * that raw number and string instances are already in the correct precision. * @private */ export declare function castTimestamp(timestamp: string | number | Date, precision: TimePrecision): string;