import { AsyncIterableX } from './asynciterablex'; export declare abstract class OrderedAsyncIterableBaseX extends AsyncIterableX { _source: AsyncIterable; constructor(source: AsyncIterable); [Symbol.asyncIterator](): AsyncIterableIterator; thenBy(keySelector: (item: TSource) => TKey, comparer?: (fst: TKey, snd: TKey) => number): OrderedAsyncIterableBaseX; thenByDescending(keySelector: (item: TSource) => TKey, comparer?: (fst: TKey, snd: TKey) => number): OrderedAsyncIterableBaseX; abstract _getSorter(elements: TSource[], next?: (x: number, y: number) => number): (x: number, y: number) => number; } export declare class OrderedAsyncIterableX extends OrderedAsyncIterableBaseX { private _keySelector; private _comparer; private _descending; private _parent?; constructor(source: AsyncIterable, keySelector: (item: TSource) => TKey, comparer: (fst: TKey, snd: TKey) => number, descending: boolean, parent?: OrderedAsyncIterableBaseX); _getSorter(elements: TSource[], next?: (x: number, y: number) => number): (x: number, y: number) => number; } export declare function orderBy(source: AsyncIterable, keySelector: (item: TSource) => TKey, comparer?: (fst: TKey, snd: TKey) => number): OrderedAsyncIterableX; export declare function orderByDescending(source: AsyncIterable, keySelector: (item: TSource) => TKey, comparer?: (fst: TKey, snd: TKey) => number): OrderedAsyncIterableX; export declare function thenBy(source: OrderedAsyncIterableBaseX, keySelector: (item: TSource) => TKey, comparer?: (fst: TKey, snd: TKey) => number): OrderedAsyncIterableX; export declare function thenByDescending(source: OrderedAsyncIterableBaseX, keySelector: (item: TSource) => TKey, comparer?: (fst: TKey, snd: TKey) => number): OrderedAsyncIterableX;