type ObjectKey = string | number | symbol;
type StringifiedObjectKey<TKey extends ObjectKey> = TKey extends string ? TKey : string;
type ObjectEntry<TKey extends ObjectKey, TValue> = [
    StringifiedObjectKey<TKey>,
    TValue
];
declare const Break: unique symbol;
declare class LastClass<T> {
    value: T;
    constructor(value: T);
}
type TypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array;
type CustomAsyncIterable<TValue, TReturn> = {
    next: () => Promise<IteratorResult<TValue, TReturn>>;
};
type CustomIterable<TValue, TReturn> = {
    next: () => IteratorResult<TValue, TReturn>;
};
declare const Last: <T>(value: T) => LastClass<T>;
declare const entries: <TValue, TKey extends ObjectKey>(object: Record<TKey, TValue>) => ObjectEntry<TKey, TValue>[];
declare const keys: <TValue, TKey extends ObjectKey>(object: Record<TKey, TValue>) => StringifiedObjectKey<TKey>[];

declare function asyncMap<TCollection extends unknown[], TUpdateValue>(array: TCollection, callback: (item: TCollection extends Array<infer TValue> ? TValue : never, index: number, arr: TCollection) => Promise<TUpdateValue | typeof Break | LastClass<TUpdateValue>>): Promise<Array<TUpdateValue>>;
declare function asyncMap<TCollection extends Set<unknown>, TUpdateValue>(set: TCollection, callback: (item: TCollection extends Set<infer TValue> ? TValue : never, index: number, set: TCollection) => Promise<TUpdateValue | typeof Break | LastClass<TUpdateValue>>): Promise<Set<TUpdateValue>>;
declare function asyncMap<TCollection extends Map<unknown, unknown>, TUpdateValue>(map: TCollection, callback: (item: TCollection extends Map<unknown, infer TValue> ? TValue : never, key: TCollection extends Map<infer TKey, unknown> ? TKey : never, map: TCollection) => Promise<TUpdateValue | typeof Break | LastClass<TUpdateValue>>): Promise<Map<TCollection extends Map<infer TKey, unknown> ? TKey : never, TUpdateValue>>;
declare function asyncMap<TCollection extends TypedArray>(typedArray: TCollection, callback: (item: TCollection[number], index: number, arr: TCollection) => Promise<TCollection[number] | typeof Break | LastClass<TCollection[number]>>): Promise<TCollection>;
declare function asyncMap<TCollection extends CustomIterable<unknown, unknown>, TUpdateValue>(iterable: TCollection, callback: (item: TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => Promise<TUpdateValue | typeof Break | LastClass<TUpdateValue>>): Promise<AsyncGenerator<TUpdateValue>>;
declare function asyncMap<TCollection extends CustomAsyncIterable<unknown, unknown>, TUpdateValue>(asyncIterable: TCollection, callback: (item: TCollection extends CustomAsyncIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => Promise<TUpdateValue | typeof Break | LastClass<TUpdateValue>>): Promise<AsyncGenerator<TUpdateValue>>;
declare function asyncMap<TCollection extends Record<string | number | symbol, unknown>, TUpdateValue>(obj: TCollection, callback: (value: TCollection[keyof TCollection], key: keyof TCollection & string, object: TCollection) => Promise<TUpdateValue | typeof Break | LastClass<TUpdateValue>>): Promise<{
    [K in keyof TCollection]: TUpdateValue;
}>;

declare function map<TCollection extends unknown[], TUpdateValue>(array: TCollection, callback: (item: TCollection extends Array<infer TValue> ? TValue : never, index: number, arr: TCollection) => TUpdateValue | typeof Break | LastClass<TUpdateValue>): Array<TUpdateValue>;
declare function map<TCollection extends Set<unknown>, TUpdateValue>(set: TCollection, callback: (item: TCollection extends Set<infer TValue> ? TValue : never, index: number, set: TCollection) => TUpdateValue | typeof Break | LastClass<TUpdateValue>): Set<TUpdateValue>;
declare function map<TCollection extends Map<unknown, unknown>, TUpdateValue>(map: TCollection, callback: (item: TCollection extends Map<unknown, infer TValue> ? TValue : never, key: TCollection extends Map<infer TKey, unknown> ? TKey : never, map: TCollection) => TUpdateValue | typeof Break | LastClass<TUpdateValue>): Map<TCollection extends Map<infer TKey, unknown> ? TKey : never, TUpdateValue>;
declare function map<TCollection extends TypedArray>(typedArray: TCollection, callback: (item: TCollection[number], index: number, arr: TCollection) => TCollection[number] | typeof Break | LastClass<TCollection[number]>): TCollection;
declare function map<TCollection extends CustomIterable<unknown, unknown>, TUpdateValue>(iterable: TCollection, callback: (item: TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => TUpdateValue | typeof Break | LastClass<TUpdateValue>): Generator<TUpdateValue>;
declare function map<TCollection extends Record<string | number | symbol, unknown>, TUpdateValue>(obj: TCollection, callback: (value: TCollection[keyof TCollection], key: keyof TCollection & string, object: TCollection) => TUpdateValue | typeof Break | LastClass<TUpdateValue>): {
    [K in keyof TCollection]: TUpdateValue;
};

declare function asyncMapToArray<TCollection extends unknown[], TUpdateValue>(array: TCollection, callback: (item: TCollection extends Array<infer TValue> ? TValue : never, index: number, arr: TCollection) => Promise<TUpdateValue | typeof Break | LastClass<TUpdateValue>>): Promise<TUpdateValue[]>;
declare function asyncMapToArray<TCollection extends Set<unknown>, TUpdateValue>(set: TCollection, callback: (item: TCollection extends Set<infer TValue> ? TValue : never, index: number, set: TCollection) => Promise<TUpdateValue | typeof Break | LastClass<TUpdateValue>>): Promise<TUpdateValue[]>;
declare function asyncMapToArray<TCollection extends Map<unknown, unknown>, TUpdateValue>(map: TCollection, callback: (item: TCollection extends Map<unknown, infer TValue> ? TValue : never, key: TCollection extends Map<infer TKey, unknown> ? TKey : never, map: TCollection) => Promise<TUpdateValue | typeof Break | LastClass<TUpdateValue>>): Promise<TUpdateValue[]>;
declare function asyncMapToArray<TCollection extends TypedArray>(typedArray: TCollection, callback: (item: TCollection[number], index: number, arr: TCollection) => Promise<TCollection[number] | typeof Break | LastClass<TCollection[number]>>): Promise<TCollection[number][]>;
declare function asyncMapToArray<TCollection extends CustomIterable<unknown, unknown>, TUpdateValue>(iterable: TCollection, callback: (item: TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => Promise<TUpdateValue | typeof Break | LastClass<TUpdateValue>>): Promise<TUpdateValue[]>;
declare function asyncMapToArray<TCollection extends CustomAsyncIterable<unknown, unknown>, TUpdateValue>(asyncIterable: TCollection, callback: (item: TCollection extends CustomAsyncIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => Promise<TUpdateValue | typeof Break | LastClass<TUpdateValue>>): Promise<TUpdateValue[]>;
declare function asyncMapToArray<TCollection extends Record<string | number | symbol, unknown>, TUpdateValue>(obj: TCollection, callback: (value: TCollection[keyof TCollection], key: keyof TCollection & string, object: TCollection) => Promise<TUpdateValue | typeof Break | LastClass<TUpdateValue>>): Promise<TUpdateValue[]>;

declare function mapToArray<TCollection extends unknown[], TUpdateValue>(array: TCollection, callback: (item: TCollection extends Array<infer TValue> ? TValue : never, index: number, arr: TCollection) => TUpdateValue | typeof Break | LastClass<TUpdateValue>): TUpdateValue[];
declare function mapToArray<TCollection extends Set<unknown>, TUpdateValue>(set: TCollection, callback: (item: TCollection extends Set<infer TValue> ? TValue : never, index: number, set: TCollection) => TUpdateValue | typeof Break | LastClass<TUpdateValue>): TUpdateValue[];
declare function mapToArray<TCollection extends Map<unknown, unknown>, TUpdateValue>(map: TCollection, callback: (item: TCollection extends Map<unknown, infer TValue> ? TValue : never, key: TCollection extends Map<infer TKey, unknown> ? TKey : never, map: TCollection) => TUpdateValue | typeof Break | LastClass<TUpdateValue>): TUpdateValue[];
declare function mapToArray<TCollection extends TypedArray>(typedArray: TCollection, callback: (item: TCollection[number], index: number, arr: TCollection) => TCollection[number] | typeof Break | LastClass<TCollection[number]>): TCollection[number][];
declare function mapToArray<TCollection extends CustomIterable<unknown, unknown>, TUpdateValue>(iterable: TCollection, callback: (item: TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => TUpdateValue | typeof Break | LastClass<TUpdateValue>): TUpdateValue[];
declare function mapToArray<TCollection extends Record<string | number | symbol, unknown>, TUpdateValue>(obj: TCollection, callback: (value: TCollection[keyof TCollection], key: keyof TCollection & string, object: TCollection) => TUpdateValue | typeof Break | LastClass<TUpdateValue>): TUpdateValue[];

declare function asyncFlatMap<TCollection extends unknown[], TUpdateValue>(array: TCollection, callback: (item: TCollection extends Array<infer TValue> ? TValue : never, index: number, arr: TCollection) => Promise<TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>>): Promise<Array<TUpdateValue>>;
declare function asyncFlatMap<TCollection extends Set<unknown>, TUpdateValue>(set: TCollection, callback: (item: TCollection extends Set<infer TValue> ? TValue : never, index: number, set: TCollection) => Promise<TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>>): Promise<Set<TUpdateValue>>;
declare function asyncFlatMap<TCollection extends TypedArray>(typedArray: TCollection, callback: (item: TCollection[number], index: number, arr: TCollection) => Promise<TCollection[number] | TCollection[number][] | typeof Break | LastClass<TCollection[number] | TCollection[number][]>>): Promise<TCollection>;
declare function asyncFlatMap<TCollection extends CustomIterable<unknown, unknown>, TUpdateValue>(iterable: TCollection, callback: (item: TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => Promise<TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>>): Promise<AsyncGenerator<TUpdateValue>>;
declare function asyncFlatMap<TCollection extends CustomAsyncIterable<unknown, unknown>, TUpdateValue>(asyncIterable: TCollection, callback: (item: TCollection extends CustomAsyncIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => Promise<TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>>): Promise<AsyncGenerator<TUpdateValue>>;

declare function flatMap<TCollection extends unknown[], TUpdateValue>(array: TCollection, callback: (item: TCollection extends Array<infer TValue> ? TValue : never, index: number, arr: TCollection) => TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>): Array<TUpdateValue>;
declare function flatMap<TCollection extends Set<unknown>, TUpdateValue>(set: TCollection, callback: (item: TCollection extends Set<infer TValue> ? TValue : never, index: number, set: TCollection) => TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>): Set<TUpdateValue>;
declare function flatMap<TCollection extends TypedArray>(typedArray: TCollection, callback: (item: TCollection[number], index: number, arr: TCollection) => TCollection[number] | TCollection[number][] | typeof Break | LastClass<TCollection[number] | TCollection[number][]>): TCollection;
declare function flatMap<TCollection extends CustomIterable<unknown, unknown>, TUpdateValue>(iterable: TCollection, callback: (item: TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>): Generator<TUpdateValue>;

declare function asyncFlatMapToArray<TCollection extends unknown[], TUpdateValue>(array: TCollection, callback: (item: TCollection extends Array<infer TValue> ? TValue : never, index: number, arr: TCollection) => Promise<TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>>): Promise<TUpdateValue[]>;
declare function asyncFlatMapToArray<TCollection extends Set<unknown>, TUpdateValue>(set: TCollection, callback: (item: TCollection extends Set<infer TValue> ? TValue : never, index: number, set: TCollection) => Promise<TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>>): Promise<TUpdateValue[]>;
declare function asyncFlatMapToArray<TCollection extends Map<unknown, unknown>, TUpdateValue>(map: TCollection, callback: (item: TCollection extends Map<unknown, infer TValue> ? TValue : never, key: TCollection extends Map<infer TKey, unknown> ? TKey : never, map: TCollection) => Promise<TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>>): Promise<TUpdateValue[]>;
declare function asyncFlatMapToArray<TCollection extends TypedArray>(typedArray: TCollection, callback: (item: TCollection[number], index: number, arr: TCollection) => Promise<TCollection[number] | TCollection[number][] | typeof Break | LastClass<TCollection[number] | TCollection[number][]>>): Promise<TCollection[number][]>;
declare function asyncFlatMapToArray<TCollection extends CustomIterable<unknown, unknown>, TUpdateValue>(iterable: TCollection, callback: (item: TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => Promise<TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>>): Promise<TUpdateValue[]>;
declare function asyncFlatMapToArray<TCollection extends CustomAsyncIterable<unknown, unknown>, TUpdateValue>(asyncIterable: TCollection, callback: (item: TCollection extends CustomAsyncIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => Promise<TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>>): Promise<TUpdateValue[]>;
declare function asyncFlatMapToArray<TCollection extends Record<string | number | symbol, unknown>, TUpdateValue>(obj: TCollection, callback: (value: TCollection[keyof TCollection], key: keyof TCollection & string, object: TCollection) => Promise<TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>>): Promise<TUpdateValue[]>;

declare function flatMapToArray<TCollection extends unknown[], TUpdateValue>(array: TCollection, callback: (item: TCollection extends Array<infer TValue> ? TValue : never, index: number, arr: TCollection) => TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>): TUpdateValue[];
declare function flatMapToArray<TCollection extends Set<unknown>, TUpdateValue>(set: TCollection, callback: (item: TCollection extends Set<infer TValue> ? TValue : never, index: number, set: TCollection) => TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>): TUpdateValue[];
declare function flatMapToArray<TCollection extends Map<unknown, unknown>, TUpdateValue>(map: TCollection, callback: (item: TCollection extends Map<unknown, infer TValue> ? TValue : never, key: TCollection extends Map<infer TKey, unknown> ? TKey : never, map: TCollection) => TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>): TUpdateValue[];
declare function flatMapToArray<TCollection extends TypedArray>(typedArray: TCollection, callback: (item: TCollection[number], index: number, arr: TCollection) => TCollection[number] | TCollection[number][] | typeof Break | LastClass<TCollection[number] | TCollection[number][]>): TCollection[number][];
declare function flatMapToArray<TCollection extends CustomIterable<unknown, unknown>, TUpdateValue>(iterable: TCollection, callback: (item: TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>): TUpdateValue[];
declare function flatMapToArray<TCollection extends Record<string | number | symbol, unknown>, TUpdateValue>(obj: TCollection, callback: (value: TCollection[keyof TCollection], key: keyof TCollection & string, object: TCollection) => TUpdateValue | TUpdateValue[] | typeof Break | LastClass<TUpdateValue | TUpdateValue[]>): TUpdateValue[];

declare function asyncFilter<TCollection extends unknown[]>(array: TCollection, predicate: (item: TCollection extends Array<infer TValue> ? TValue : never, index: number, arr: TCollection) => Promise<boolean | typeof Break | LastClass<boolean>>): Promise<Array<TCollection[number]>>;
declare function asyncFilter<TCollection extends Set<unknown>>(set: TCollection, predicate: (item: TCollection extends Set<infer TValue> ? TValue : never, index: number, set: TCollection) => Promise<boolean | typeof Break | LastClass<boolean>>): Promise<Set<TCollection extends Set<infer TValue> ? TValue : never>>;
declare function asyncFilter<TCollection extends Map<unknown, unknown>>(map: TCollection, predicate: (value: TCollection extends Map<unknown, infer TValue> ? TValue : never, key: TCollection extends Map<infer TKey, unknown> ? TKey : never, map: TCollection) => Promise<boolean | typeof Break | LastClass<boolean>>): Promise<Map<TCollection extends Map<infer TKey, unknown> ? TKey : never, TCollection extends Map<unknown, infer TValue> ? TValue : never>>;
declare function asyncFilter<TCollection extends TypedArray>(typedArray: TCollection, predicate: (item: TCollection[number], index: number, arr: TCollection) => Promise<boolean | typeof Break | LastClass<boolean>>): Promise<TCollection>;
declare function asyncFilter<TCollection extends CustomIterable<unknown, unknown>>(iterable: TCollection, predicate: (item: TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => Promise<boolean | typeof Break | LastClass<boolean>>): Promise<AsyncGenerator<TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never>>;
declare function asyncFilter<TCollection extends CustomAsyncIterable<unknown, unknown>>(asyncIterable: TCollection, predicate: (item: TCollection extends CustomAsyncIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => Promise<boolean | typeof Break | LastClass<boolean>>): Promise<AsyncGenerator<TCollection extends CustomAsyncIterable<infer TValue, unknown> ? TValue : never>>;
declare function asyncFilter<TCollection extends Record<string | number | symbol, unknown>>(obj: TCollection, predicate: (value: TCollection[keyof TCollection], key: keyof TCollection & string, object: TCollection) => Promise<boolean | typeof Break | LastClass<boolean>>): Promise<{
    [K in keyof TCollection]: TCollection[K];
}>;

declare function filter<TCollection extends unknown[]>(array: TCollection, predicate: (item: TCollection extends Array<infer TValue> ? TValue : never, index: number, arr: TCollection) => boolean | typeof Break | LastClass<boolean>): Array<TCollection[number]>;
declare function filter<TCollection extends Set<unknown>>(set: TCollection, predicate: (item: TCollection extends Set<infer TValue> ? TValue : never, index: number, set: TCollection) => boolean | typeof Break | LastClass<boolean>): Set<TCollection extends Set<infer TValue> ? TValue : never>;
declare function filter<TCollection extends Map<unknown, unknown>>(map: TCollection, predicate: (value: TCollection extends Map<unknown, infer TValue> ? TValue : never, key: TCollection extends Map<infer TKey, unknown> ? TKey : never, map: TCollection) => boolean | typeof Break | LastClass<boolean>): Map<TCollection extends Map<infer TKey, unknown> ? TKey : never, TCollection extends Map<unknown, infer TValue> ? TValue : never>;
declare function filter<TCollection extends TypedArray>(typedArray: TCollection, predicate: (item: TCollection[number], index: number, arr: TCollection) => boolean | typeof Break | LastClass<boolean>): TCollection;
declare function filter<TCollection extends CustomIterable<unknown, unknown>>(iterable: TCollection, predicate: (item: TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => boolean | typeof Break | LastClass<boolean>): Generator<TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never>;
declare function filter<TCollection extends Record<string | number | symbol, unknown>>(obj: TCollection, predicate: (value: TCollection[keyof TCollection], key: keyof TCollection & string, object: TCollection) => boolean | typeof Break | LastClass<boolean>): {
    [K in keyof TCollection]: TCollection[K];
};

declare function asyncFilterToArray<TCollection extends unknown[]>(array: TCollection, predicate: (item: TCollection extends Array<infer TValue> ? TValue : never, index: number, arr: TCollection) => Promise<boolean | typeof Break | LastClass<boolean>>): Promise<TCollection[number][]>;
declare function asyncFilterToArray<TCollection extends Set<unknown>>(set: TCollection, predicate: (item: TCollection extends Set<infer TValue> ? TValue : never, index: number, set: TCollection) => Promise<boolean | typeof Break | LastClass<boolean>>): Promise<TCollection extends Set<infer TValue> ? TValue[] : never>;
declare function asyncFilterToArray<TCollection extends Map<unknown, unknown>>(map: TCollection, predicate: (value: TCollection extends Map<unknown, infer TValue> ? TValue : never, key: TCollection extends Map<infer TKey, unknown> ? TKey : never, map: TCollection) => Promise<boolean | typeof Break | LastClass<boolean>>): Promise<TCollection extends Map<unknown, infer TValue> ? TValue[] : never>;
declare function asyncFilterToArray<TCollection extends TypedArray>(typedArray: TCollection, predicate: (item: TCollection[number], index: number, arr: TCollection) => Promise<boolean | typeof Break | LastClass<boolean>>): Promise<TCollection[number][]>;
declare function asyncFilterToArray<TCollection extends CustomIterable<unknown, unknown>>(iterable: TCollection, predicate: (item: TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => Promise<boolean | typeof Break | LastClass<boolean>>): Promise<TCollection extends CustomIterable<infer TValue, unknown> ? TValue[] : never>;
declare function asyncFilterToArray<TCollection extends CustomAsyncIterable<unknown, unknown>>(asyncIterable: TCollection, predicate: (item: TCollection extends CustomAsyncIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => Promise<boolean | typeof Break | LastClass<boolean>>): Promise<TCollection extends CustomAsyncIterable<infer TValue, unknown> ? TValue[] : never>;
declare function asyncFilterToArray<TCollection extends Record<string | number | symbol, unknown>>(obj: TCollection, predicate: (value: TCollection[keyof TCollection], key: keyof TCollection & string, object: TCollection) => Promise<boolean | typeof Break | LastClass<boolean>>): Promise<TCollection[keyof TCollection][]>;

declare function filterToArray<TCollection extends unknown[]>(array: TCollection, predicate: (item: TCollection extends Array<infer TValue> ? TValue : never, index: number, arr: TCollection) => boolean | typeof Break | LastClass<boolean>): TCollection[number][];
declare function filterToArray<TCollection extends Set<unknown>>(set: TCollection, predicate: (item: TCollection extends Set<infer TValue> ? TValue : never, index: number, set: TCollection) => boolean | typeof Break | LastClass<boolean>): TCollection extends Set<infer TValue> ? TValue[] : never;
declare function filterToArray<TCollection extends Map<unknown, unknown>>(map: TCollection, predicate: (value: TCollection extends Map<unknown, infer TValue> ? TValue : never, key: TCollection extends Map<infer TKey, unknown> ? TKey : never, map: TCollection) => boolean | typeof Break | LastClass<boolean>): TCollection extends Map<unknown, infer TValue> ? TValue[] : never;
declare function filterToArray<TCollection extends TypedArray>(typedArray: TCollection, predicate: (item: TCollection[number], index: number, arr: TCollection) => boolean | typeof Break | LastClass<boolean>): TCollection[number][];
declare function filterToArray<TCollection extends CustomIterable<unknown, unknown>>(iterable: TCollection, predicate: (item: TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => boolean | typeof Break | LastClass<boolean>): TCollection extends CustomIterable<infer TValue, unknown> ? TValue[] : never;
declare function filterToArray<TCollection extends Record<string | number | symbol, unknown>>(obj: TCollection, predicate: (value: TCollection[keyof TCollection], key: keyof TCollection & string, object: TCollection) => boolean | typeof Break | LastClass<boolean>): TCollection[keyof TCollection][];

declare function asyncReduce<TCollection extends unknown[], TAccumulator = TCollection extends Array<infer TValue> ? TValue : never>(array: TCollection, callback: (acc: TAccumulator, item: TCollection extends Array<infer TValue> ? TValue : never, index: number, arr: TCollection) => Promise<TAccumulator | typeof Break | LastClass<TAccumulator>>, initialValue?: TAccumulator): Promise<TAccumulator>;
declare function asyncReduce<TCollection extends Set<unknown>, TAccumulator = TCollection extends Set<infer TValue> ? TValue : never>(set: TCollection, callback: (acc: TAccumulator, item: TCollection extends Set<infer TValue> ? TValue : never, index: number, set: TCollection) => Promise<TAccumulator | typeof Break | LastClass<TAccumulator>>, initialValue?: TAccumulator): Promise<TAccumulator>;
declare function asyncReduce<TCollection extends Map<unknown, unknown>, TAccumulator = TCollection extends Map<unknown, infer TValue> ? TValue : never>(map: TCollection, callback: (acc: TAccumulator, item: TCollection extends Map<unknown, infer TValue> ? TValue : never, key: TCollection extends Map<infer TKey, unknown> ? TKey : never, map: TCollection) => Promise<TAccumulator | typeof Break | LastClass<TAccumulator>>, initialValue?: TAccumulator): Promise<TAccumulator>;
declare function asyncReduce<TCollection extends TypedArray, TAccumulator = TCollection[number]>(typedArray: TCollection, callback: (acc: TAccumulator, item: TCollection[number], index: number, arr: TCollection) => Promise<TAccumulator | typeof Break | LastClass<TAccumulator>>, initialValue?: TAccumulator): Promise<TAccumulator>;
declare function asyncReduce<TCollection extends CustomIterable<unknown, unknown>, TAccumulator = TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never>(iterable: TCollection, callback: (acc: TAccumulator, item: TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => Promise<TAccumulator | typeof Break | LastClass<TAccumulator>>, initialValue?: TAccumulator): Promise<TAccumulator>;
declare function asyncReduce<TCollection extends CustomAsyncIterable<unknown, unknown>, TAccumulator = TCollection extends CustomAsyncIterable<infer TValue, unknown> ? TValue : never>(asyncIterable: TCollection, callback: (acc: TAccumulator, item: TCollection extends CustomAsyncIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => Promise<TAccumulator | typeof Break | LastClass<TAccumulator>>, initialValue?: TAccumulator): Promise<TAccumulator>;
declare function asyncReduce<TCollection extends Record<string | number | symbol, unknown>, TAccumulator = TCollection[keyof TCollection]>(obj: TCollection, callback: (acc: TAccumulator, value: TCollection[keyof TCollection], key: keyof TCollection & string, object: TCollection) => Promise<TAccumulator | typeof Break | LastClass<TAccumulator>>, initialValue?: TAccumulator): Promise<TAccumulator>;

declare function reduce<TCollection extends unknown[], TAccumulator = TCollection extends Array<infer TValue> ? TValue : never>(array: TCollection, callback: (acc: TAccumulator, item: TCollection extends Array<infer TValue> ? TValue : never, index: number, arr: TCollection) => TAccumulator | typeof Break | LastClass<TAccumulator>, initialValue?: TAccumulator): TAccumulator;
declare function reduce<TCollection extends Set<unknown>, TAccumulator = TCollection extends Set<infer TValue> ? TValue : never>(set: TCollection, callback: (acc: TAccumulator, item: TCollection extends Set<infer TValue> ? TValue : never, index: number, set: TCollection) => TAccumulator | typeof Break | LastClass<TAccumulator>, initialValue?: TAccumulator): TAccumulator;
declare function reduce<TCollection extends Map<unknown, unknown>, TAccumulator = TCollection extends Map<unknown, infer TValue> ? TValue : never>(map: TCollection, callback: (acc: TAccumulator, item: TCollection extends Map<unknown, infer TValue> ? TValue : never, key: TCollection extends Map<infer TKey, unknown> ? TKey : never, map: TCollection) => TAccumulator | typeof Break | LastClass<TAccumulator>, initialValue?: TAccumulator): TAccumulator;
declare function reduce<TCollection extends TypedArray, TAccumulator = TCollection[number]>(typedArray: TCollection, callback: (acc: TAccumulator, item: TCollection[number], index: number, arr: TCollection) => TAccumulator | typeof Break | LastClass<TAccumulator>, initialValue?: TAccumulator): TAccumulator;
declare function reduce<TCollection extends CustomIterable<unknown, unknown>, TAccumulator = TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never>(iterable: TCollection, callback: (acc: TAccumulator, item: TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => TAccumulator | typeof Break | LastClass<TAccumulator>, initialValue?: TAccumulator): TAccumulator;
declare function reduce<TCollection extends Record<string | number | symbol, unknown>, TAccumulator = TCollection[keyof TCollection]>(obj: TCollection, callback: (acc: TAccumulator, value: TCollection[keyof TCollection], key: keyof TCollection & string, object: TCollection) => TAccumulator | typeof Break | LastClass<TAccumulator>, initialValue?: TAccumulator): TAccumulator;

declare function asyncForEach<TCollection extends unknown[]>(array: TCollection, callback: (item: TCollection extends Array<infer TValue> ? TValue : never, index: number, arr: TCollection) => Promise<void | typeof Break>): Promise<void>;
declare function asyncForEach<TCollection extends Set<unknown>>(set: TCollection, callback: (item: TCollection extends Set<infer TValue> ? TValue : never, index: number, set: TCollection) => Promise<void | typeof Break>): Promise<void>;
declare function asyncForEach<TCollection extends Map<unknown, unknown>>(map: TCollection, callback: (item: TCollection extends Map<unknown, infer TValue> ? TValue : never, key: TCollection extends Map<infer TKey, unknown> ? TKey : never, map: TCollection) => Promise<void | typeof Break>): Promise<void>;
declare function asyncForEach<TCollection extends TypedArray>(typedArray: TCollection, callback: (item: TCollection[number], index: number, arr: TCollection) => Promise<void | typeof Break>): Promise<void>;
declare function asyncForEach<TCollection extends CustomIterable<unknown, unknown>>(iterable: TCollection, callback: (item: TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => Promise<void | typeof Break>): Promise<void>;
declare function asyncForEach<TCollection extends CustomAsyncIterable<unknown, unknown>>(asyncIterable: TCollection, callback: (item: TCollection extends CustomAsyncIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => Promise<void | typeof Break>): Promise<void>;
declare function asyncForEach<TCollection extends Record<string | number | symbol, unknown>>(obj: TCollection, callback: (value: TCollection[keyof TCollection], key: keyof TCollection & string, object: TCollection) => Promise<void | typeof Break>): Promise<void>;

declare function forEach<TCollection extends unknown[]>(array: TCollection, callback: (item: TCollection extends Array<infer TValue> ? TValue : never, index: number, arr: TCollection) => void | typeof Break): void;
declare function forEach<TCollection extends Set<unknown>>(set: TCollection, callback: (item: TCollection extends Set<infer TValue> ? TValue : never, index: number, set: TCollection) => void | typeof Break): void;
declare function forEach<TCollection extends Map<unknown, unknown>>(map: TCollection, callback: (item: TCollection extends Map<unknown, infer TValue> ? TValue : never, key: TCollection extends Map<infer TKey, unknown> ? TKey : never, map: TCollection) => void | typeof Break): void;
declare function forEach<TCollection extends TypedArray>(typedArray: TCollection, callback: (item: TCollection[number], index: number, arr: TCollection) => void | typeof Break): void;
declare function forEach<TCollection extends CustomIterable<unknown, unknown>>(iterable: TCollection, callback: (item: TCollection extends CustomIterable<infer TValue, unknown> ? TValue : never, index: number, iterable: TCollection) => void | typeof Break): void;
declare function forEach<TCollection extends Record<string | number | symbol, unknown>>(obj: TCollection, callback: (value: TCollection[keyof TCollection], key: keyof TCollection & string, object: TCollection) => void | typeof Break): void;

declare function batch<TCollection extends Array<any>>(array: TCollection extends Iterator<any> ? never : TCollection, batchSize: number): Array<TCollection extends Array<infer TValue> ? TValue[] : never>;
declare function batch<TCollection extends Set<any>>(set: TCollection, batchSize: number): Set<TCollection extends Set<infer TValue> ? TValue[] : never>;
declare function batch<TCollection extends CustomIterable<any, any>, TUpdateValue>(iterable: TCollection, batchSize: number): Generator<TCollection extends CustomIterable<infer TValue, any> ? TValue[] : never>;
declare function batch<TCollection extends CustomAsyncIterable<any, any>>(asyncIterable: TCollection, batchSize: number): AsyncGenerator<TCollection extends CustomAsyncIterable<infer TValue, any> ? TValue[] : never>;

export { Break, Last, asyncFilter, asyncFilterToArray, asyncFlatMap, asyncFlatMapToArray, asyncForEach, asyncMap, asyncMapToArray, asyncReduce, batch, entries, filter, filterToArray, flatMap, flatMapToArray, forEach, keys, map, mapToArray, reduce };
