import { IIterator } from './iteration'; import { ISequence } from './sequence'; /** * Create a range of evenly spaced values. * * @param start - The starting value for the range, inclusive. * * @param stop - The stopping value for the range, exclusive. * * @param step - The nonzero distance between each value. * * @returns A range object which produces evenly spaced values. * * #### Notes * In the single argument form of `range(stop)`, `start` defaults to * `0` and `step` defaults to `1`. * * In the two argument form of `range(start, stop)`, `step` defaults * to `1`. * * All values can be any real number, but `step` cannot be `0`. */ export declare function range(start: number, stop?: number, step?: number): Range; /** * An object which produces a range of evenly spaced values. */ export declare class Range implements ISequence { /** * Construct a new range. * * @param start - The starting value for the range, inclusive. * * @param stop - The stopping value for the range, exclusive. * * @param step - The nonzero distance between each value. */ constructor(start: number, stop: number, step: number); /** * The starting value for the range, inclusive. * * #### Notes * This is a read-only property. */ readonly start: number; /** * The stopping value for the range, exclusive. * * #### Notes * This is a read-only property. */ readonly stop: number; /** * The distance between each value. * * #### Notes * This is a read-only property. */ readonly step: number; /** * The number of values in the range. * * #### Notes * This is a read-only property. */ readonly length: number; /** * Create an iterator over the range of values. * * @returns A new iterator for the range of values. */ iter(): RangeIterator; /** * Get the value at the specified index. * * @param index - The positive integer index of interest. * * @returns The value at the specified index. * * #### Undefined Behavior * An `index` which is non-integral or out of range. */ at(index: number): number; private _start; private _stop; private _step; private _length; } /** * An iterator which generates evenly spaced values. */ export declare class RangeIterator implements IIterator { /** * Construct a new range iterator. * * @param start - The starting value for the range, inclusive. * * @param stop - The stopping value for the range, exclusive. * * @param step - The non-zero distance between each value. */ constructor(start: number, stop: number, step: number); /** * Create an iterator over the object's values. * * @returns A reference to `this` iterator. */ iter(): this; /** * Create an independent clone of the range iterator. * * @returns A new iterator starting with the current value. */ clone(): RangeIterator; /** * Get the next value from the range. * * @returns The next value from the range, or `undefined` if the * iterator is exhausted. */ next(): number; private _start; private _step; private _index; private _length; }