import { Undefinable } from '../Types'; import { IEnumerator } from './_types'; export default abstract class EnumeratorBase implements IEnumerator { abstract readonly current: T; abstract moveNext(): boolean; abstract peek(): Undefinable; abstract reset(): void; next(): IteratorResult; readonly return?: (value?: T) => IteratorResult; readonly throw?: (e?: T) => IteratorResult; }