export interface IEnumeratorV2 extends Iterator<any> {
	Start(target?: any): IEnumeratorV2Started;

	Then(iterator: Iterator<any>): IEnumeratorV2;

	ThenSerial(...iterators: Iterator<any>[]): IEnumeratorV2;

	ThenParallel(...iterators: Iterator<any>[]): IEnumeratorV2;

	ThenAction(action: Function, delaySeconds?: number): IEnumeratorV2;

	ThenWaitTime(seconds: number): IEnumeratorV2;
}

export interface IEnumeratorV2Started {
	readonly Current: any;

	Pause(): void;

	Resume(): void;

	Stop(): void;
}
