import { Promised } from "./utils";
import "./geninq";
declare global {
    interface Generator<T = unknown, TReturn = any, TNext = unknown> {
        zip<TInput>(that: Generator<TInput, TReturn, TNext> | TInput[]): Generator<[T, TInput], TReturn, TNext>;
        zip<TInput, TResult>(that: Generator<TInput, TReturn, TNext> | TInput[], selector: (a: T, b: TInput) => TResult): Generator<TResult, TReturn, TNext>;
    }
    interface AsyncGenerator<T = unknown, TReturn = any, TNext = unknown> {
        zip<TInput>(that: AsyncGenerator<TInput, TReturn, TNext> | Generator<TInput, TReturn, TNext> | TInput[]): AsyncGenerator<[T, TInput], TReturn, TNext>;
        zip<TInput, TResult>(that: AsyncGenerator<TInput, TReturn, TNext> | Generator<TInput, TReturn, TNext> | TInput[], selector: (a: T, b: TInput) => Promised<TResult>): AsyncGenerator<TResult, TReturn, TNext>;
    }
}
