3 * @typedef {[number, boolean]} RangeValue
6 * @callback RangeValueCallback
7 * @param {RangeValue} rangeValue
12 * @param {"left" | "right"} side
13 * @param {boolean} exclusive
14 * @returns {">" | ">=" | "<" | "<="}
17 side: "left" | "right",
19 ): ">" | ">=" | "<" | "<=";
21 * @param {number} value
22 * @param {boolean} logic is not logic applied
23 * @param {boolean} exclusive is range exclusive
26 static formatRight(value: number, logic: boolean, exclusive: boolean): string;
28 * @param {number} value
29 * @param {boolean} logic is not logic applied
30 * @param {boolean} exclusive is range exclusive
33 static formatLeft(value: number, logic: boolean, exclusive: boolean): string;
35 * @param {number} start left side value
36 * @param {number} end right side value
37 * @param {boolean} startExclusive is range exclusive from left side
38 * @param {boolean} endExclusive is range exclusive from right side
39 * @param {boolean} logic is not logic applied
45 startExclusive: boolean,
46 endExclusive: boolean,
50 * @param {Array<RangeValue>} values
51 * @param {boolean} logic is not logic applied
52 * @return {RangeValue} computed value and it's exclusive flag
54 static getRangeValue(values: Array<RangeValue>, logic: boolean): RangeValue;
55 /** @type {Array<RangeValue>} */
56 _left: Array<RangeValue>;
57 /** @type {Array<RangeValue>} */
58 _right: Array<RangeValue>;
60 * @param {number} value
61 * @param {boolean=} exclusive
63 left(value: number, exclusive?: boolean | undefined): void;
65 * @param {number} value
66 * @param {boolean=} exclusive
68 right(value: number, exclusive?: boolean | undefined): void;
70 * @param {boolean} logic is not logic applied
71 * @return {string} "smart" range string representation
73 format(logic?: boolean): string;
75 declare namespace Range {
76 export { RangeValue, RangeValueCallback };
78 type RangeValue = [number, boolean];
79 type RangeValueCallback = (rangeValue: RangeValue) => boolean;