export declare const forOf: []>(...iterables: T) => ForOf; declare class ForOf[]> { #private; constructor(iterables: T); find(predicate: ForOfPredicate): IterableTupleToUnion | undefined; includes(value: IterableTupleToUnion): boolean; some(predicate: ForOfPredicate): boolean; every(predicate: ForOfPredicate): boolean; forEach(predicate: ForOfPredicate): void; map(predicate: ForOfPredicate): R[]; reduce(predicate: ForOfReducePredicate, initialValue: R): R; } type MapKeyValueType = T extends Map ? [K, V] : never; type SetValueType = T extends Set ? V : never; type GeneratorValueType = T extends Generator ? A | B : never; type UnwrapIterableTuple> = { [K in keyof T]: T[K] extends any[] ? T[K][number] : T[K] extends Map ? MapKeyValueType : T[K] extends Set ? SetValueType : T[K] extends Generator ? GeneratorValueType : never; } & Record; type IterableTupleToUnion> = UnwrapIterableTuple[number]; type ForOfPredicate[], R> = (value: IterableTupleToUnion, index: number, obj: T[number]) => R; type ForOfReducePredicate[], R> = (acc: R, value: IterableTupleToUnion, index: number, obj: T[number]) => R; export {}; //# sourceMappingURL=for-of.d.ts.map