export interface List { getSize(): number; getItem(index: number): TItem; } export declare abstract class AbstractIterator implements Iterator { protected rawList: List; private index; constructor(rawList: List); /** * @override */ next(): IteratorResult; protected abstract getItem(currentValue: TItem): TValueItem; } export declare class DefaultIterator extends AbstractIterator { protected list: List; constructor(list: List); /** * @override */ protected getItem(currentValue: TItem): TItem; } export declare class ArrayIterator extends DefaultIterator { protected array: Array; constructor(array: Array); }