import { RangeFactory, PartialRangeFactory } from './util'; export declare const rangeFactory: (first: number, second?: number | undefined, last?: number | undefined) => RangeFactory; /** * Takes the first n elements from a range. */ export declare const take: (n: number) => PartialRangeFactory; /** * Repeats a range indefinitely. */ export declare const cycle: (factory: RangeFactory) => RangeFactory; /** * Discards (drops) `n` elements from the start of the range. */ export declare const drop: (n: number) => PartialRangeFactory; /** * Split the range at `n`, yielding the left side followed by the right side. */ export declare const splitAt: (n: number) => (factory: RangeFactory) => () => IterableIterator; /** * Concat multiple ranges together. */ export declare const concat: (...factories: RangeFactory[]) => RangeFactory; /** * Yields an array of the element and the index. [i, element] * Similar to `Array.prototype.entries`. */ export declare const entries: (factory: RangeFactory) => () => IterableIterator<[number, number]>; declare type MapCallback = (element: number, index: number) => any; /** * Maps over every element in the array. * Similar to `Array.prototype.map`. * * An example of an infinite range of repeating 1s and 0s: * ```typescript * map(x => x % 2)(range(1)) * ``` */ export declare const map: (cb: MapCallback) => PartialRangeFactory; export {};