import { combineEmitter, mergeEmitterCatching } from '../emitter';
import { catchAsync, merge, mergeCatching, whenEmptyAsync } from '../async-base';
export declare const asyncIterableFuncs: {
    withIndex: (this: any) => any;
    takeWhile: <T>(this: import("augmentative-iterable").AnyIterable<T>, baseAction: import("../types-internal").AnyMapper<any>) => import("augmentative-iterable").AnyIterable<unknown>;
    takeWhileAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, baseAction: import("../types-internal").AnyMapper<any>) => import("augmentative-iterable").AnyIterable<unknown>;
    take: <T>(this: import("augmentative-iterable").AnyIterable<T>, n: number) => import("augmentative-iterable").AnyIterable<any>;
    skipWhile: <T>(this: import("augmentative-iterable").AnyIterable<T>, baseCondition: import("../types-internal").AnyMapper<T>) => import("augmentative-iterable").AnyIterable<any>;
    skipWhileAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, baseCondition: import("../types-internal").AnyMapper<T>) => import("augmentative-iterable").AnyIterable<any>;
    skip: <T>(this: import("augmentative-iterable").AnyIterable<T>, n: number) => import("augmentative-iterable").AnyIterable<any>;
    map: <T>(this: import("augmentative-iterable").AnyIterable<T>, action: import("../types-internal").AnyMapper<T>) => import("augmentative-iterable").AnyIterable<T>;
    mapAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, action: import("../types-internal").AnyMapper<T>) => import("augmentative-iterable").AnyIterable<T>;
    filter: <T>(this: import("augmentative-iterable").AnyIterable<T>, basePredicate?: import("../types-internal").AnyMapper<any>) => import("augmentative-iterable").AnyIterable<unknown>;
    filterAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, basePredicate?: import("../types-internal").AnyMapper<any>) => import("augmentative-iterable").AnyIterable<unknown>;
    append: any;
    prepend: any;
    concat: <T>(this: import("augmentative-iterable").AnyIterable<T>, ...iterables: Array<import("augmentative-iterable").AnyIterable<T>>) => any;
    repeat: <T>(this: import("augmentative-iterable").AnyIterable<T>, n: number) => any;
    flatJoin: <T, R>(this: Iterable<T>, ...path: string[]) => Iterable<R>;
    flatten: <T, R>(this: Iterable<T>, baseMapper?: import("../types-internal").AnyMapper<T>) => Iterable<R>;
    flatMap: <T, R>(this: Iterable<T>, baseMapper?: import("../types-internal").AnyMapper<T>) => Iterable<R>;
    flatMerge: <T>(this: import("augmentative-iterable").AnyIterable<T>, callback?: import("../types").ErrorCallback) => any;
    sort: <T>(this: Iterable<T>, comparer?: import("..").Comparer<T>) => any;
    sortBy: <T>(this: Iterable<T>, ...props: import("../types-internal").AnyMapper<T>[]) => import("augmentative-iterable").AnyIterable<any>;
    distinct: <T>(this: import("augmentative-iterable").AnyIterable<T>, baseMapper?: import("../types-internal").AnyMapper<T> | number, maxOcurrencesOrChoose?: number | import("../types").Choose<T>, maxOcurrences?: number) => any;
    distinctBy: <T>(this: import("augmentative-iterable").AnyIterable<T>, ...baseMappers: Array<import("../types-internal").AnyMapper<T>>) => any;
    distinctAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, baseMapper?: import("../types-internal").AnyMapper<T> | number, maxOcurrencesOrChoose?: number | import("../types").Choose<T>, maxOcurrences?: number) => any;
    execute: <T>(this: import("augmentative-iterable").AnyIterable<T>, action: import("../types-internal").FunctionAnyMapper<T>) => import("augmentative-iterable").AnyIterable<any>;
    merge: typeof merge;
    mergeCatching: typeof mergeCatching;
    combine: <T, U>(this: import("augmentative-iterable").AnyIterable<T>, iterable: import("augmentative-iterable").AnyIterable<U>, baseKeyA?: import("../types-internal").AnyMapper<T>, baseKeyB?: import("../types-internal").AnyMapper<U>) => import("augmentative-iterable").AnyIterable<[T, U]>;
    combineJoin: <T>(this: import("augmentative-iterable").AnyIterable<import("augmentative-iterable").AnyIterable<T>>, baseKey?: import("../types-internal").AnyMapper<unknown>) => any;
    combineEmitter: typeof combineEmitter;
    concatEmitter: <T>(this: import("augmentative-iterable").AnyIterable<T>, eventEmitter: any, options?: import("../types").FluentEmitOptions) => any;
    mergeEmitter: <T>(this: import("augmentative-iterable").AnyIterable<T>, eventEmitter: any, options?: import("../types").FluentEmitOptions) => any;
    mergeEmitterCatching: typeof mergeEmitterCatching;
    whenEmpty: typeof whenEmptyAsync;
    catch: typeof catchAsync;
    unwind: (this: import("augmentative-iterable").AnyIterable<any>, ...keys: string[]) => any;
    finally: ((this: Iterable<any>, callback: (success: boolean) => unknown) => Generator<any, void, any>) | ((this: import("augmentative-iterable").AnyIterable<any>, callback: (success: boolean) => Promise<unknown>) => AsyncGenerator<any, void, any>);
    assureOrderRecipe<T>(direction: number): (this: import("augmentative-iterable").AnyIterable<T>) => import("augmentative-iterable").AnyIterable<T>;
    assureOrder: (this: import("augmentative-iterable").AnyIterable<unknown>) => import("augmentative-iterable").AnyIterable<unknown>;
    o: (this: import("augmentative-iterable").AnyIterable<unknown>) => import("augmentative-iterable").AnyIterable<unknown>;
    assureOrderDescending: (this: import("augmentative-iterable").AnyIterable<unknown>) => import("augmentative-iterable").AnyIterable<unknown>;
    od: (this: import("augmentative-iterable").AnyIterable<unknown>) => import("augmentative-iterable").AnyIterable<unknown>;
};
export declare const asyncSpecial: {
    partition: <T>(this: Iterable<T>, criteria: number | import("../types").Equality<unknown>) => import("augmentative-iterable").AnyIterable<import("augmentative-iterable").AnyIterable<T>>;
    group: <T>(this: import("augmentative-iterable").AnyIterable<T>, baseMapper: import("../types-internal").AnyMapper<T>, baseTransformValue?: import("../types-internal").AnyMapper<T>) => any;
};
export declare const asyncResolvingFuncs: {
    count: <T>(this: import("augmentative-iterable").AnyIterable<T>, predicate?: import("../types-internal").AnyMapper<T>) => any;
    first: <T>(this: import("augmentative-iterable").AnyIterable<T>, givenPredicate?: import("../types-internal").AnyMapper<T>) => Promise<any>;
    last: <T>(this: import("augmentative-iterable").AnyIterable<T>, predicate?: any) => any;
    reduceAndMap: <T, A, R>(this: Iterable<T>, reducer: import("../types").AnyReducer<T, A>, initial: A, baseResult: import("../types-internal").AnyMapper<A>) => R;
    reduce: <T, R>(this: import("augmentative-iterable").AnyIterable<T>, reducer: import("..").AsyncReducer<T, R>, initial: R) => any;
    all: <T>(this: import("augmentative-iterable").AnyIterable<T>, givenPredicate?: import("../types-internal").AnyMapper<T>) => Promise<any>;
    every: <T>(this: import("augmentative-iterable").AnyIterable<T>, givenPredicate?: import("../types-internal").AnyMapper<T>) => Promise<any>;
    any: <T>(this: import("augmentative-iterable").AnyIterable<T>, givenPredicate?: import("../types-internal").AnyMapper<T>) => Promise<any>;
    some: <T>(this: import("augmentative-iterable").AnyIterable<T>, givenPredicate?: import("../types-internal").AnyMapper<T>) => Promise<any>;
    contains: <T>(this: import("augmentative-iterable").AnyIterable<T>, item: T) => any;
    emit: <T>(this: import("augmentative-iterable").AnyIterable<T>) => import("..").FluentEmitter<T>;
    toArray: typeof import("augmentative-iterable").augmentativeToArrayAsync;
    toObject: <T, V, R extends {
        [key: string]: V;
    }>(this: import("augmentative-iterable").AnyIterable<T>, baseKeySelector: import("../types-internal").AnyMapper<T>, baseValueSelector?: import("../types-internal").AnyMapper<T>, choose?: import("../types").Choose<T>) => R;
    toObjectChain: (this: import("augmentative-iterable").AnyIterable<any>, ...keys: string[]) => any;
    toObjectChainReduce: <T, R>(this: import("augmentative-iterable").AnyIterable<any>, initial: () => R, reducer: import("..").AsyncReducer<T, R>, ...keys: string[]) => any;
    forEach: <T>(this: import("augmentative-iterable").AnyIterable<T>, action: import("../types-internal").AnyMapper<T>) => any;
    join: (this: import("augmentative-iterable").AnyIterable<unknown>, separator: string, baseMapper?: import("../types-internal").FunctionAnyMapper<unknown>) => any;
    sum: <T>(this: import("augmentative-iterable").AnyIterable<T>, mapper?: import("../types-internal").AnyMapper<T>) => any;
    avg: <T>(this: Iterable<T>, baseMapper?: import("../types-internal").AnyMapper<T>) => any;
    top: <T>(this: any, baseMapper: import("../types-internal").AnyMapper<T>, comparer: Function) => any;
    min: <T>(this: any, baseMapper?: import("../types-internal").AnyMapper<T>) => any;
    max: <T>(this: any, baseMapper?: import("../types-internal").AnyMapper<T>) => any;
    hasExactly: <T>(this: import("augmentative-iterable").AnyIterable<T>, expectedSize: number) => any;
    hasLessOrExactly: <T>(this: import("augmentative-iterable").AnyIterable<T>, expectedSize: number) => any;
    hasLessThan: <T>(this: import("augmentative-iterable").AnyIterable<T>, expectedSize: number) => any;
    hasMoreOrExactly: <T>(this: import("augmentative-iterable").AnyIterable<T>, expectedSize: number) => any;
    hasMoreThan: <T>(this: import("augmentative-iterable").AnyIterable<T>, expectedSize: number) => any;
    waitAll: <T, R>(this: import("augmentative-iterable").AnyIterable<T>, baseMapper: import("../types-internal").AnyMapper<T>) => any;
    isDistinct: <T>(this: import("augmentative-iterable").AnyIterable<T>, baseMapper?: import("../types-internal").AnyMapper<T> | number, maxOcurrencesOrChoose?: number | import("../types").Choose<T>, maxOcurrences?: number) => any;
    toMap: <T>(this: import("augmentative-iterable").AnyIterable<T>, getKey: import("../types-internal").AnyMapper<T>, mapper: import("../types-internal").AnyMapper<T>, getReduced?: import("../types").Choose<unknown>) => any;
    toSet: <T>(this: import("augmentative-iterable").AnyIterable<T>, mapper?: import("../types-internal").AnyMapper<T>) => any;
    next: any;
    toMapChain: (this: import("augmentative-iterable").AnyIterable<any>, ...keys: string[]) => any;
    toMapChainReduce: <T, R>(this: import("augmentative-iterable").AnyIterable<any>, initial: () => R, reducer: import("..").AsyncReducer<T, R>, ...keys: string[]) => any;
    branch: any;
};
