import { type FormattedPart } from './format.js'; import type { FormatOptions } from './tokens.js'; export type IntervalBounds = 'open' | 'closed' | 'half-open-start' | 'half-open-end'; export interface Interval { start: unknown; end: unknown; bounds: IntervalBounds; } export declare function interval(start: unknown, end: unknown, bounds?: IntervalBounds): Interval; export declare function contains(iv: Interval, value: unknown): boolean; export declare function overlaps(a: Interval, b: Interval): boolean; export declare function intersects(a: Interval, b: Interval): boolean; export declare function isBefore(a: Interval, b: Interval): boolean; export declare function isAfter(a: Interval, b: Interval): boolean; export declare function intersection(a: Interval, b: Interval): Interval | null; export declare function union(a: Interval, b: Interval): Interval | null; export declare function difference(a: Interval, b: Interval): Interval[]; export declare const subtract: typeof difference; export declare function mergeIntervals(intervals: Interval[]): Interval[]; export declare function splitInterval(iv: Interval, n: number): Interval[]; export declare function formatRange(iv: Interval, formatStr: string, options?: FormatOptions): string; export declare function formatRangeToParts(iv: Interval, formatStr: string, options?: FormatOptions): FormattedPart[];