@everwhen/temporal
Version:
_description_
28 lines (27 loc) • 1.07 kB
TypeScript
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;
}