/**
 * Get an iterator that always returns a given value.
 */
export declare function always<T = any>(fn: () => T): Iterator<T>;
/**
 * Get an iterator that returns a value a given amount of times.
 */
export declare function fill<T = any>(length: number, fn: () => T): Iterator<T>;
/**
 * Iterate through the first num elements of an iterator.
 *
 * @param n - The number of elements to iterate.
 * @param iterator - The iterator.
 *
 * @returns - An iterator limited to the next n elements.
 */
export declare function first<T = any>(n: number, iterator: Iterator<T>): Iterator<T>;
/**
 * Join multiple iterators into one.
 *
 * @param iterators - The iterators to join.
 */
export declare function join<T = any>(iterators: Iterator<Iterator<T>>): Iterator<T>;
/**
 * Get an empty iterator.
 */
export declare function never<T = any>(): Iterator<T>;
/**
 * Wrap a value in an iterator.
 */
export declare function once<T = any>(fn: () => T): Iterator<T>;
/**
 * Skip the next num elements of an iterator.
 *
 * @param n - The number of elements to skip.
 * @param iterator - The iterator.
 *
 * @returns - The iterator after skipping n elements.
 */
export declare function skip<T = any>(n: number, iterator: Iterator<T>): Iterator<T>;
/**
 * Split an iterator into multiple iterators of a given length.
 *
 * @param length - The length of each iterator.
 * @param iterator - The iterator to split.
 *
 * @returns - An iterator of the resulting iterators.
 */
export declare function split<T = any>(length: number, iterator: Iterator<T>): Iterator<Iterator<T>>;
