import { toAsync, forEach, whenEmpty, catchSync } from '../sync';
import { combineEmitter } from '../emitter';
import { catchAsync } from '../async-base';
export declare const iterableFuncs: {
    withIndex: (this: any) => any;
    takeWhile: <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>;
    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>;
    filter: <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;
    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>;
    flatJoin: <T, R>(this: Iterable<T>, ...path: string[]) => Iterable<R>;
    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;
    execute: <T>(this: import("augmentative-iterable").AnyIterable<T>, action: import("../types-internal").FunctionAnyMapper<T>) => import("augmentative-iterable").AnyIterable<any>;
    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;
    whenEmpty: typeof whenEmpty;
    catch: typeof catchSync;
    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 iterableAsyncFuncs: {
    concatAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, ...iterables: Array<import("augmentative-iterable").AnyIterable<T>>) => any;
    takeWhileAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, baseAction: import("../types-internal").AnyMapper<any>) => import("augmentative-iterable").AnyIterable<unknown>;
    skipWhileAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, baseCondition: import("../types-internal").AnyMapper<T>) => import("augmentative-iterable").AnyIterable<any>;
    mapAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, action: import("../types-internal").AnyMapper<T>) => import("augmentative-iterable").AnyIterable<T>;
    filterAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, basePredicate?: import("../types-internal").AnyMapper<any>) => import("augmentative-iterable").AnyIterable<unknown>;
    flatJoinAsync: <T, R>(this: Iterable<T>, ...path: string[]) => Iterable<R>;
    flattenAsync: <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;
    flatMapAsync: <T, R>(this: Iterable<T>, baseMapper?: import("../types-internal").AnyMapper<T>) => Iterable<R>;
    distinctAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, baseMapper?: import("../types-internal").AnyMapper<T> | number, maxOcurrencesOrChoose?: number | import("../types").Choose<T>, maxOcurrences?: number) => any;
    distinctByAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, ...baseMappers: Array<import("../types-internal").AnyMapper<T>>) => any;
    executeAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, action: import("../types-internal").FunctionAnyMapper<T>) => import("augmentative-iterable").AnyIterable<any>;
    toAsync: typeof toAsync;
    combineAsync: <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]>;
    combineJoinAsync: <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;
    catchAsync: typeof catchAsync;
    unwindAsync: (this: import("augmentative-iterable").AnyIterable<any>, ...keys: string[]) => any;
    finallyAsync: ((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>);
};
export declare const special: {
    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 specialAsync: {
    groupAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, baseMapper: import("../types-internal").AnyMapper<T>, baseTransformValue?: import("../types-internal").AnyMapper<T>) => any;
};
export declare const resolvingFuncs: {
    count: <T>(this: import("augmentative-iterable").AnyIterable<T>, predicate?: import("../types-internal").AnyMapper<T>) => any;
    countAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, predicate?: import("../types-internal").AnyMapper<T>) => any;
    emit: <T>(this: import("augmentative-iterable").AnyIterable<T>) => import("..").FluentEmitter<T>;
    first: <T>(this: Iterable<T>, givenPredicate?: import("../types-internal").AnyMapper<T>) => any;
    firstAsync: <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;
    lastAsync: <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;
    reduceAndMapAsync: <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;
    reduceAsync: <T, R>(this: import("augmentative-iterable").AnyIterable<T>, reducer: import("..").AsyncReducer<T, R>, initial: R) => any;
    all: <T>(this: Iterable<T>, givenPredicate?: import("../types-internal").AnyMapper<T>) => any;
    allAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, givenPredicate?: import("../types-internal").AnyMapper<T>) => Promise<any>;
    every: <T>(this: Iterable<T>, givenPredicate?: import("../types-internal").AnyMapper<T>) => any;
    everyAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, givenPredicate?: import("../types-internal").AnyMapper<T>) => Promise<any>;
    any: <T>(this: Iterable<T>, givenPredicate?: import("../types-internal").AnyMapper<T>) => any;
    anyAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, givenPredicate?: import("../types-internal").AnyMapper<T>) => Promise<any>;
    some: <T>(this: Iterable<T>, givenPredicate?: import("../types-internal").AnyMapper<T>) => any;
    someAsync: <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;
    toArray: typeof import("augmentative-iterable").augmentativeToArray;
    toJSON: typeof import("augmentative-iterable").augmentativeToArray;
    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;
    toObjectAsync: <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;
    toObjectChainAsync: (this: import("augmentative-iterable").AnyIterable<any>, ...keys: string[]) => any;
    toObjectChainReduceAsync: <T, R>(this: import("augmentative-iterable").AnyIterable<any>, initial: () => R, reducer: import("..").AsyncReducer<T, R>, ...keys: string[]) => any;
    forEach: typeof forEach;
    forEachAsync: <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;
    joinAsync: (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;
    sumAsync: <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;
    avgAsync: <T>(this: Iterable<T>, baseMapper?: import("../types-internal").AnyMapper<T>) => any;
    top: <T>(this: any, baseMapper: import("../types-internal").AnyMapper<T>, comparer: Function) => any;
    topAsync: <T>(this: any, baseMapper: import("../types-internal").AnyMapper<T>, comparer: Function) => any;
    min: <T>(this: any, baseMapper?: import("../types-internal").AnyMapper<T>) => any;
    minAsync: <T>(this: any, baseMapper?: import("../types-internal").AnyMapper<T>) => any;
    max: <T>(this: any, baseMapper?: import("../types-internal").AnyMapper<T>) => any;
    maxAsync: <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;
    isDistinctAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, baseMapper?: import("../types-internal").AnyMapper<T> | number, maxOcurrencesOrChoose?: number | import("../types").Choose<T>, maxOcurrences?: number) => any;
    next: 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;
    toMapAsync: <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;
    toSetAsync: <T>(this: import("augmentative-iterable").AnyIterable<T>, mapper?: import("../types-internal").AnyMapper<T>) => 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;
    toMapChainAsync: (this: import("augmentative-iterable").AnyIterable<any>, ...keys: string[]) => any;
    toMapChainReduceAsync: <T, R>(this: import("augmentative-iterable").AnyIterable<any>, initial: () => R, reducer: import("..").AsyncReducer<T, R>, ...keys: string[]) => any;
    branch: any;
};
