/**
 * TypeScript Generator 類型
 * TypeScript Generator type
 *
 * 代表 JavaScript Generator 物件的類型
 * Represents the type of a JavaScript Generator object
 *
 * @typeParam T - 生成器yield的值類型 / Type of value yielded by the generator
 * @typeParam TReturn - 生成器完成時返回的類型 / Type returned when generator completes
 * @typeParam TNext - 傳遞給生成器next()方法的參數類型 / Type of argument passed to generator's next() method
 */
export type ITSGenerator<T = unknown, TReturn = T, TNext = T> = Generator<T, TReturn, TNext>;
/**
 * TypeScript AsyncGenerator 類型
 * TypeScript AsyncGenerator type
 *
 * 代表 JavaScript AsyncGenerator 物件的類型
 * Represents the type of a JavaScript AsyncGenerator object
 *
 * @typeParam T - 生成器yield的值類型 / Type of value yielded by the async generator
 * @typeParam TReturn - 生成器完成時返回的類型 / Type returned when async generator completes
 * @typeParam TNext - 傳遞給生成器next()方法的參數類型 / Type of argument passed to async generator's next() method
 */
export type ITSAsyncGenerator<T = unknown, TReturn = T, TNext = T> = AsyncGenerator<T, TReturn, TNext>;
