| export = Range; | 
| /** | 
|  * @typedef {[number, boolean]} RangeValue | 
|  */ | 
| /** | 
|  * @callback RangeValueCallback | 
|  * @param {RangeValue} rangeValue | 
|  * @returns {boolean} | 
|  */ | 
| declare class Range { | 
|   /** | 
|    * @param {"left" | "right"} side | 
|    * @param {boolean} exclusive | 
|    * @returns {">" | ">=" | "<" | "<="} | 
|    */ | 
|   static getOperator( | 
|     side: 'left' | 'right', | 
|     exclusive: boolean | 
|   ): '>' | '>=' | '<' | '<='; | 
|   /** | 
|    * @param {number} value | 
|    * @param {boolean} logic is not logic applied | 
|    * @param {boolean} exclusive is range exclusive | 
|    * @returns {string} | 
|    */ | 
|   static formatRight(value: number, logic: boolean, exclusive: boolean): string; | 
|   /** | 
|    * @param {number} value | 
|    * @param {boolean} logic is not logic applied | 
|    * @param {boolean} exclusive is range exclusive | 
|    * @returns {string} | 
|    */ | 
|   static formatLeft(value: number, logic: boolean, exclusive: boolean): string; | 
|   /** | 
|    * @param {number} start left side value | 
|    * @param {number} end right side value | 
|    * @param {boolean} startExclusive is range exclusive from left side | 
|    * @param {boolean} endExclusive is range exclusive from right side | 
|    * @param {boolean} logic is not logic applied | 
|    * @returns {string} | 
|    */ | 
|   static formatRange( | 
|     start: number, | 
|     end: number, | 
|     startExclusive: boolean, | 
|     endExclusive: boolean, | 
|     logic: boolean | 
|   ): string; | 
|   /** | 
|    * @param {Array<RangeValue>} values | 
|    * @param {boolean} logic is not logic applied | 
|    * @return {RangeValue} computed value and it's exclusive flag | 
|    */ | 
|   static getRangeValue( | 
|     values: Array<[number, boolean]>, | 
|     logic: boolean | 
|   ): [number, boolean]; | 
|   /** @type {Array<RangeValue>} */ | 
|   _left: Array<[number, boolean]>; | 
|   /** @type {Array<RangeValue>} */ | 
|   _right: Array<[number, boolean]>; | 
|   /** | 
|    * @param {number} value | 
|    * @param {boolean=} exclusive | 
|    */ | 
|   left(value: number, exclusive?: boolean | undefined): void; | 
|   /** | 
|    * @param {number} value | 
|    * @param {boolean=} exclusive | 
|    */ | 
|   right(value: number, exclusive?: boolean | undefined): void; | 
|   /** | 
|    * @param {boolean} logic is not logic applied | 
|    * @return {string} "smart" range string representation | 
|    */ | 
|   format(logic?: boolean): string; | 
| } | 
| declare namespace Range { | 
|   export { RangeValue, RangeValueCallback }; | 
| } | 
| type RangeValue = [number, boolean]; | 
| type RangeValueCallback = (rangeValue: [number, boolean]) => boolean; |