UNPKG

@everwhen/temporal

Version:
28 lines (27 loc) 1.07 kB
import { Duration } from './duration.ts'; import { type Point } from './point.ts'; export interface OverlapsOptions { inclusive?: boolean; } export type IntervalLike<T extends Point = Point> = { start: T; end: T; }; export declare class Interval<T extends Point = Point> { readonly start: T; readonly end: T; constructor(start: T, end: T); static from<T extends Point = Point>(value: string | T | IntervalLike<T>): Interval<T>; static compare<T extends Point>(a: IntervalLike<T>, b: IntervalLike<T>): number; static overlaps<T extends Point>(a: IntervalLike<T>, b: IntervalLike<T>, options?: OverlapsOptions): boolean; validate(): void; isBefore(other: IntervalLike<T> | T): boolean; isAfter(other: IntervalLike<T> | T): boolean; equals(other: IntervalLike<T>): boolean; overlaps(other: IntervalLike<T>, options?: OverlapsOptions): boolean; contains(value: T | IntervalLike<T>): boolean; merge(other: IntervalLike<T>): Interval<T>; toJSON(): string; toString(): string; get duration(): Duration; }