import { Comparator } from './types';
declare class Range<T> {
    private customComparator;
    protected minimum: T;
    protected maximum: T;
    protected comparator: Comparator<T>;
    protected constructor(fromInclusive: T, toInclusive: T, customComparator?: Comparator<T> | null);
    /**
     * @deprecated Use Range.of instead.
     */
    static between<T>(fromInclusive: T, toInclusive: T, comparator?: Comparator<T> | null): Range<T>;
    static of<T>(fromInclusive: T, toInclusive: T, comparator?: Comparator<T> | null): Range<T>;
    static is<T>(element: T, comparator?: Comparator<T> | null): Range<T>;
    contains(element: T): boolean;
    containsRange(other: Range<T>): boolean;
    elementCompareTo(element: T): -1 | 0 | 1;
    fit(element: T): T;
    getComparator(): Comparator<T>;
    getMaximum(): T;
    getMinimum(): T;
    intersectionWith(other: Range<T>): Range<T>;
    isAfter(element: T): boolean;
    isAfterRange(otherRange: Range<T>): boolean;
    isBefore(element: T): boolean;
    isBeforeRange(otherRange: Range<T>): boolean;
    isEndedBy(element: T): boolean;
    isNaturalOrdering(): boolean;
    isOverlappedBy(otherRange: Range<T>): boolean;
    isStartedBy(element: T): boolean;
    toString(): string;
}
export default Range;
