///
import { OperatorAsyncFunction, UnaryFunction } from '../interfaces.js';
import { Observable } from '../observer.js';
/**
* This class serves as the base for all operations which support [Symbol.asyncIterator].
*/
export declare abstract class AsyncIterableX implements AsyncIterable {
abstract [Symbol.asyncIterator](signal?: AbortSignal): AsyncIterator;
/** @nocollapse */
forEach(projection: (value: T, index: number, signal?: AbortSignal) => void | Promise, thisArg?: any, signal?: AbortSignal): Promise;
/** @nocollapse */
pipe(...operations: UnaryFunction, R>[]): R;
pipe(...operations: OperatorAsyncFunction[]): AsyncIterableX;
pipe(writable: R, options?: {
end?: boolean;
}): R;
/** @nocollapse */
static from(source: AsyncIterableInput, selector?: (value: TSource, index: number) => TResult | Promise, thisArg?: any): AsyncIterableX;
/**
* Converts an existing string into an async-iterable of characters.
*
* @param {string} source The string to convert to an async-iterable.
* @returns {AsyncIterableX} An async-iterable stream of characters from the source.
*/
static as(source: string): AsyncIterableX;
/**
* Converts the AsyncIterable-like input or single element into an AsyncIterable.
*
* @template T The type of elements in the async-iterable like sequence.
* @param {AsyncIterableInput} source The async-iterable like input to convert to an async-iterable.
* @returns {AsyncIterableX} An async-iterable stream from elements in the async-iterable like sequence.
*/
static as(source: AsyncIterableInput | T): AsyncIterableX;
/**
* Converts the single element into an async-iterable sequence.
*
* @template T The type of the input to turn into an async-iterable sequence.
* @param {T} source The single element to turn into an async-iterable sequence.
* @returns {AsyncIterableX} An async-iterable sequence which contains the single element.
*/
static as(source: T): AsyncIterableX;
}
/** @ignore */
/** @ignore */
export declare class AsyncSink implements AsyncIterableIterator {
private _ended;
private _values;
private _resolvers;
constructor();
[Symbol.asyncIterator](): this;
write(value: TSource): void;
error(error: any): void;
private _push;
next(): Promise>;
end(): void;
}
/** @ignore */
export declare class FromArrayIterable extends AsyncIterableX {
private _source;
private _selector;
constructor(source: ArrayLike, selector: (value: TSource, index: number) => TResult | Promise);
[Symbol.asyncIterator](): AsyncGenerator, void, unknown>;
}
/** @ignore */
export declare class FromAsyncIterable extends AsyncIterableX {
private _source;
private _selector;
constructor(source: Iterable> | AsyncIterable, selector: (value: TSource, index: number) => TResult | Promise);
[Symbol.asyncIterator](signal?: AbortSignal): AsyncGenerator, void, unknown>;
}
/** @ignore */
export declare class FromPromiseIterable extends AsyncIterableX {
private _source;
private _selector;
constructor(source: PromiseLike, selector: (value: TSource, index: number) => TResult | Promise);
[Symbol.asyncIterator](): AsyncGenerator, void, unknown>;
}
/** @ignore */
export declare class FromObservableAsyncIterable extends AsyncIterableX {
private _observable;
private _selector;
constructor(observable: Observable, selector: (value: TSource, index: number) => TResult | Promise);
[Symbol.asyncIterator](signal?: AbortSignal): AsyncGenerator, void, unknown>;
}
/** @ignore */
export type AsyncIterableInput = AsyncIterable | AsyncIterator | Iterable> | ArrayLike | PromiseLike | Observable;
declare module '../asynciterable/asynciterablex' {
interface AsyncIterableX {
pipe(): AsyncIterableX;
pipe(op1: OperatorAsyncFunction): AsyncIterableX;
pipe(op1: OperatorAsyncFunction, op2: OperatorAsyncFunction): AsyncIterableX;
pipe(op1: OperatorAsyncFunction, op2: OperatorAsyncFunction, op3: OperatorAsyncFunction): AsyncIterableX;
pipe(op1: OperatorAsyncFunction, op2: OperatorAsyncFunction, op3: OperatorAsyncFunction, op4: OperatorAsyncFunction): AsyncIterableX;
pipe(op1: OperatorAsyncFunction, op2: OperatorAsyncFunction, op3: OperatorAsyncFunction, op4: OperatorAsyncFunction, op5: OperatorAsyncFunction): AsyncIterableX;
pipe(op1: OperatorAsyncFunction, op2: OperatorAsyncFunction, op3: OperatorAsyncFunction, op4: OperatorAsyncFunction, op5: OperatorAsyncFunction, op6: OperatorAsyncFunction): AsyncIterableX;
pipe(op1: OperatorAsyncFunction, op2: OperatorAsyncFunction, op3: OperatorAsyncFunction, op4: OperatorAsyncFunction, op5: OperatorAsyncFunction, op6: OperatorAsyncFunction, op7: OperatorAsyncFunction): AsyncIterableX;
pipe(op1: OperatorAsyncFunction, op2: OperatorAsyncFunction, op3: OperatorAsyncFunction, op4: OperatorAsyncFunction, op5: OperatorAsyncFunction, op6: OperatorAsyncFunction, op7: OperatorAsyncFunction, op8: OperatorAsyncFunction): AsyncIterableX;
pipe(op1: OperatorAsyncFunction, op2: OperatorAsyncFunction, op3: OperatorAsyncFunction, op4: OperatorAsyncFunction, op5: OperatorAsyncFunction, op6: OperatorAsyncFunction, op7: OperatorAsyncFunction, op8: OperatorAsyncFunction, op9: OperatorAsyncFunction): AsyncIterableX;
pipe(...operations: OperatorAsyncFunction[]): AsyncIterableX;
pipe(op1: A, options?: {
end?: boolean;
}): A;
}
}
export declare const as: typeof AsyncIterableX.as;
export declare const from: typeof AsyncIterableX.from;