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;
 |