import { Collector } from "../collector/types.js"; import { AsyncRandomOptions } from "../random/types.js"; import { MaybeAsyncPredicate, MaybeAsyncConverter, MaybeAsyncIterable, MaybeAsyncEquater, MaybeAsyncBiConverter, MaybeAsyncAccumulator, MaybeAsyncComparer, Predicate, MaybeAsyncAction } from "../types.js"; export interface AsyncSequence extends AsyncIterable> { iterator(): AsyncIterator>; apply(pipeline: (sequence: AsyncSequence) => TResult): TResult; count(predicate?: MaybeAsyncPredicate): Promise; nonEnumeratedCount(): Promise; fastCount(): Promise; maxCount(): Promise; select(selector: MaybeAsyncConverter): AsyncSequence; selectMany(selector: MaybeAsyncConverter>): AsyncSequence; where(predicate: MaybeAsyncPredicate): AsyncSequence; groupBy(keySelector: MaybeAsyncConverter, elementSelector?: undefined, keyComparer?: MaybeAsyncEquater): AsyncSequence>; groupBy(keySelector: MaybeAsyncConverter, elementSelector: MaybeAsyncConverter, keyComparer?: MaybeAsyncEquater): AsyncSequence>; join(iterable: MaybeAsyncIterable, firstKeySelector: MaybeAsyncConverter, secondKeySelector: MaybeAsyncConverter, resultSelector?: undefined, keyComparer?: MaybeAsyncEquater): AsyncSequence<[Awaited, Awaited]>; join(iterable: MaybeAsyncIterable, firstKeySelector: MaybeAsyncConverter, secondKeySelector: MaybeAsyncConverter, resultSelector: MaybeAsyncBiConverter, keyComparer?: MaybeAsyncEquater): AsyncSequence; groupJoin(iterable: MaybeAsyncIterable, firstKeySelector: MaybeAsyncConverter, secondKeySelector: MaybeAsyncConverter, resultSelector?: undefined, keyComparer?: MaybeAsyncEquater): AsyncSequence>; groupJoin(iterable: MaybeAsyncIterable, firstKeySelector: MaybeAsyncConverter, secondKeySelector: MaybeAsyncConverter, resultSelector: MaybeAsyncBiConverter, TResult>, keyComparer?: MaybeAsyncEquater): AsyncSequence; contains(obj: TElement, equater?: MaybeAsyncEquater): Promise; sequenceEquals(iterable: MaybeAsyncIterable, equater?: MaybeAsyncEquater): Promise; append(obj: TElement): AsyncSequence; prepend(obj: TElement): AsyncSequence; remove(obj: TElement, all?: boolean, equater?: MaybeAsyncEquater): AsyncSequence; concat(...iterables: MaybeAsyncIterable[]): AsyncSequence; first(predicate?: MaybeAsyncPredicate): Promise; firstOrDefault(predicate?: MaybeAsyncPredicate, def?: TElement): Promise; last(predicate?: MaybeAsyncPredicate): Promise; lastOrDefault(predicate?: MaybeAsyncPredicate, def?: TElement): Promise; single(predicate?: MaybeAsyncPredicate): Promise; singleOrDefault(predicate?: MaybeAsyncPredicate, def?: TElement): Promise; elementAt(index: number): Promise; elementAtOrDefault(index: number, def?: TElement): Promise; aggregate(accumulator: MaybeAsyncAccumulator): Promise; aggregate(accumulator: MaybeAsyncAccumulator, seed?: TAccumulator): Promise; aggregate(accumulator: MaybeAsyncAccumulator, seed?: TAccumulator, resultSelector?: MaybeAsyncConverter): Promise; min(): Promise; minBy(selector: MaybeAsyncConverter): Promise; max(): Promise; maxBy(selector: MaybeAsyncConverter): Promise; order(comparer?: MaybeAsyncComparer): AsyncSequence; orderBy(selector: MaybeAsyncConverter, comparer?: MaybeAsyncComparer): AsyncSequence; orderDescending(comparer?: MaybeAsyncComparer): AsyncSequence; orderByDescending(selector: MaybeAsyncConverter, comparer?: MaybeAsyncComparer): AsyncSequence; partition(equater?: MaybeAsyncEquater): AsyncSequence[]>; partitionBy(selector: MaybeAsyncConverter, equater?: MaybeAsyncEquater): AsyncSequence[]>; distinct(equater?: MaybeAsyncEquater): AsyncSequence; distinctBy(selector: MaybeAsyncConverter, equater?: MaybeAsyncEquater): AsyncSequence; union(iterable: MaybeAsyncIterable, equater?: MaybeAsyncEquater): AsyncSequence; unionBy(iterable: MaybeAsyncIterable, selector: MaybeAsyncConverter, equater?: MaybeAsyncEquater): AsyncSequence; except(iterable: MaybeAsyncIterable, equater?: MaybeAsyncEquater): AsyncSequence; exceptBy(iterable: MaybeAsyncIterable, selector: MaybeAsyncConverter, equater?: MaybeAsyncEquater): AsyncSequence; intersect(iterable: MaybeAsyncIterable, equater?: MaybeAsyncEquater): AsyncSequence; intersectBy(iterable: MaybeAsyncIterable, selector: MaybeAsyncConverter, equater?: MaybeAsyncEquater): AsyncSequence; all(predicate: MaybeAsyncPredicate): Promise; any(predicate: MaybeAsyncPredicate): Promise; any(): Promise; none(predicate: Predicate): Promise; none(): Promise; skip(n: number): AsyncSequence; skipLast(n: number): AsyncSequence; skipWhile(condition: MaybeAsyncPredicate): AsyncSequence; take(n: number): AsyncSequence; takeLast(n: number): AsyncSequence; takeWhile(condition: MaybeAsyncPredicate): AsyncSequence; peek(action: MaybeAsyncAction): AsyncSequence; forEach(action: MaybeAsyncAction): Promise; zip(iterable: MaybeAsyncIterable): AsyncSequence<[Awaited, Awaited]>; indexex(): AsyncSequence<[number, Awaited]>; reversed(): AsyncSequence; chunked(size: number): AsyncSequence; random(options?: AsyncRandomOptions): Promise; cached(): AsyncSequence; toArray(): Promise; toMap(keySelector: MaybeAsyncConverter, valueSelector: MaybeAsyncConverter): Promise>; toSet(): Promise>; toObject(keySelector: MaybeAsyncConverter, valueSelector: MaybeAsyncConverter): Promise>; collect(collector: Collector): Promise; } export interface GroupedAsyncSequence extends AsyncSequence { get key(): TKey; } export interface OrderedAsyncSequence extends AsyncSequence { get comparer(): MaybeAsyncComparer; thenSelf(comparer?: MaybeAsyncComparer): OrderedAsyncSequence; thenBy(selector: MaybeAsyncConverter, comparer?: MaybeAsyncComparer): OrderedAsyncSequence; thenSelfDescending(comparer?: MaybeAsyncComparer): OrderedAsyncSequence; thenByDescending(selector: MaybeAsyncConverter, comparer?: MaybeAsyncComparer): OrderedAsyncSequence; }