export interface IIterable<TElement> {
    copy(): IIterable<TElement>;
    reset(): void;
    next(): boolean;
    value(): TElement;
}
export declare class ArrayIterator<TElement> implements IIterable<TElement> {
    protected readonly source: TElement[];
    private _index;
    constructor(source: TElement[]);
    copy(): IIterable<TElement>;
    reset(): void;
    private isValidIndex();
    next(): boolean;
    value(): TElement;
}
