import { Duration } from 'date-fns'; export type UnixTimeMs = number; export type DateTimeFormat = number | string; export interface AbsoluteTimeRange { start: Date; end: Date; } export interface RelativeTimeRange { end?: Date; pastDuration: DurationString; } export type TimeRangeValue = AbsoluteTimeRange | RelativeTimeRange; /** * Determine whether a given time range is relative */ export declare function isRelativeTimeRange(timeRange: TimeRangeValue): timeRange is RelativeTimeRange; /** * Determine whether a given time range is absolute */ export declare function isAbsoluteTimeRange(timeRange: TimeRangeValue): timeRange is AbsoluteTimeRange; /** * Returns an absolute time range from a RelativeTimeRange. */ export declare function toAbsoluteTimeRange(timeRange: RelativeTimeRange): AbsoluteTimeRange; type MillisecondsDurationString = `${number}ms`; type SecondsDurationString = `${number}s`; type MinutesDurationString = `${number}m`; type HoursDurationString = `${number}h`; type DaysDurationString = `${number}d`; type WeeksDurationString = `${number}w`; type YearsDurationString = `${number}y`; export type DurationString = Exclude<`${YearsDurationString | ''}${WeeksDurationString | ''}${DaysDurationString | ''}${HoursDurationString | ''}${MinutesDurationString | ''}${SecondsDurationString | ''}${MillisecondsDurationString | ''}`, ''>; export declare const DURATION_REGEX: RegExp; /** * Parses a DurationString into a Duration object with numeric values that can * be used to do Date math. Throws if not a valid duration string. */ export declare function parseDurationString(durationString: string): Duration; /** * Returns true if the given string is a valid DurationString. */ export declare function isDurationString(maybeDuration: string): maybeDuration is DurationString; export declare function intervalToPrometheusDuration(timeRange: AbsoluteTimeRange): Duration; export declare function msToPrometheusDuration(durationInMs: number): Duration; export declare function formatDuration(duration: Duration): DurationString; /** * Round interval to clearer increments */ export declare function roundStepInterval(stepMs: number): number; /** * Gets a suggested step/interval size for a time range based on the width of a visual component. */ export declare function getSuggestedStepMs(timeRange: AbsoluteTimeRange, width: number): number; export {}; //# sourceMappingURL=time.d.ts.map