import type { As, Sum } from '@chzky/core'; import type { RangeBounds } from './interface.js'; /** ## `Range` : 半开区间(half-open range)类型 + 表示 左闭右开 的范围:`[start, end)` + 默认迭代精度为 `1` @example Usage - basic ```ts const rg = Range(0, 11) // [0,11) _> 1的精度 assert(rg.as('array').includes(10)) assert(rg.contains(10)) assert.strict_no_equal(rg.clone(), rg) assert.equal(rg.clone(), rg) assert.equal(rg.sum(), 55) assert.equal(rg.as('array'), [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) ``` @example Usage - accuracy ```ts const rg = Range(0, 1, 0.1) // [0,1) _> 0.1的精度 const arr = rg.as('array') assert.equal(arr, [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]) ``` @Category : Ops */ export interface Range extends RangeBounds, Sum, As, 'array'> { /** ### `range_size` : 区间长度 + 区间长度 = `abs(end - start)` @example ```ts const rg = Range(0, 10) ssert.equal(rg.range_size, 10) const rg2 = Range(-10, 10, 0.1) ssert.equal(rg2.range_size, 20) ``` */ readonly range_size: number; } export declare function Range(start: number, end: number, /** 迭代精度 @default 1 */ accuracy?: number): Range; /** ### `is_some` : 运行时检查`Range` */ export declare function is_range(val: unknown): val is Range; //# sourceMappingURL=Range.d.ts.map