80 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 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<RangeValue>, logic: boolean): RangeValue;
 | |
|   /** @type {Array<RangeValue>} */
 | |
|   _left: Array<RangeValue>;
 | |
|   /** @type {Array<RangeValue>} */
 | |
|   _right: Array<RangeValue>;
 | |
|   /**
 | |
|    * @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: RangeValue) => boolean;
 |