import { IAsyncEnumerable , IAsyncEqualityComparer , IComparer , IEqualityComparer , IGrouping , InferType , IOrderedAsyncEnumerable , IOrderedEnumerable , IParallelEnumerable , OfType , SelectorKeyType } from "./" ; /**
 * Iterable type with methods from LINQ.
 */ export interface IEnumerable < TSource > extends Iterable < TSource > { param func returns aggregate ( func ) : TSource ; param seed param func returns aggregate < TAccumulate > ( seed , func ) : TAccumulate ; param seed param func param resultSelector returns aggregate < TAccumulate , TResult > ( seed , func , resultSelector ) : TResult ; param predicate returns all ( predicate ) : boolean ; param predicate returns allAsync ( predicate ) : Promise < boolean > ; param predicate returns any ( predicate ? ) : boolean ; param predicate returns anyAsync ( predicate ) : Promise < boolean > ; returns asAsync ( ) : IAsyncEnumerable < TSource > ; returns asParallel ( ) : IParallelEnumerable < TSource > ; throws returns average ( this ) : number ; param selector throws returns average ( selector ) : number ; param selector throws returns averageAsync ( selector ) : Promise < number > ; param second returns concatenate ( second ) : IEnumerable < TSource > ; param value param comparer returns contains ( value , comparer ? ) : boolean ; param value param comparer returns containsAsync ( value , comparer ) : Promise < boolean > ; param predicate returns count ( predicate ? ) : number ; param predicate returns countAsync ( predicate ) : Promise < number > ; param comparer returns distinct ( comparer ? ) : IEnumerable < TSource > ; param comparer returns distinctAsync ( comparer ) : IAsyncEnumerable < TSource > ; param index throws returns elementAt ( index ) : TSource ; param index returns elementAtOrDefault ( index ) : TSource | null ; param second param comparer returns except ( second , comparer ? ) : IEnumerable < TSource > ; param second param comparer returns exceptAsync ( second , comparer ) : IAsyncEnumerable < TSource > ; param predicate throws returns first ( predicate ? ) : TSource ; param predicate throws returns firstAsync ( predicate ) : Promise < TSource > ; param predicate returns firstOrDefault ( predicate ? ) : TSource | null ; param predicate returns firstOrDefaultAsync ( predicate ) : Promise < TSource | null > ; param action returns each ( action ) : IEnumerable < TSource > ; param action returns eachAsync ( action ) : IAsyncEnumerable < TSource > ; param keySelector returns groupBy < TKey extends SelectorKeyType > ( keySelector ) : IEnumerable < IGrouping < TKey , TSource > > ; param keySelector param comparer returns groupBy < TKey > ( keySelector , comparer ) : IEnumerable < IGrouping < TKey , TSource > > ; param keySelector returns groupByAsync < TKey extends SelectorKeyType > ( keySelector ) : IAsyncEnumerable < IGrouping < TKey , TSource > > ; param keySelector param comparer returns groupByAsync < TKey > ( keySelector , comparer ) : IAsyncEnumerable < IGrouping < TKey , TSource > > ; param keySelector param elementSelector returns groupByWithSel < TElement , TKey extends SelectorKeyType > ( keySelector , elementSelector ) : IEnumerable < IGrouping < TKey , TElement > > ; param keySelector param elementSelector param comparer returns groupByWithSel < TKey , TElement > ( keySelector , elementSelector , comparer ) : IEnumerable < IGrouping < TKey , TElement > > ; param second param comparer returns intersect ( second , comparer ? ) : IEnumerable < TSource > ; param second param comparer returns intersectAsync ( second , comparer ) : IAsyncEnumerable < TSource > ; param inner param outerKeySelector param innerKeySelector param resultSelector param comparer returns joinByKey < TInner , TKey , TResult > ( inner , outerKeySelector , innerKeySelector , resultSelector , comparer ? ) : IEnumerable < TResult > ; param predicate throws returns last ( predicate ? ) : TSource ; param predicate throws returns lastAsync ( predicate ) : Promise < TSource > ; param predicate returns lastOrDefault ( predicate ? ) : TSource | null ; param predicate returns lastOrDefaultAsync ( predicate ) : Promise < TSource | null > ; throws returns max ( this ) : number ; param selector throws returns max ( selector ) : number ; param selector throws returns maxAsync ( selector ) : Promise < number > ; throws returns min ( this ) : number ; param selector throws returns min ( selector ) : number ; param selector throws returns minAsync ( selector ) : Promise < number > ; param type returns ofType < T extends OfType > ( type ) : IEnumerable < InferType < T > > ; param keySelector param comparer returns orderBy < TKey > ( predicate , comparer ? ) : IOrderedEnumerable < TSource > ; param keySelector param comparer returns orderByAsync < TKey > ( predicate , comparer ? ) : IOrderedAsyncEnumerable < TSource > ; param keySelector param comparer returns orderByDescending < TKey > ( predicate , comparer ? ) : IOrderedEnumerable < TSource > ; param keySelector param comparer returns orderByDescendingAsync < TKey > ( predicate , comparer ? ) : IOrderedAsyncEnumerable < TSource > ; param predicate returns partition ( predicate ) : [ pass : TSource [ ] , fail : TSource [ ] ] ; param predicate returns partitionAsync ( predicate ) : Promise < [ pass : TSource [ ] , fail : TSource [ ] ] > ; returns reverse ( ) : IEnumerable < TSource > ; param selector returns select < TResult > ( selector ) : IEnumerable < TResult > ; param selector returns select < TKey extends keyof TSource > ( key ) : IEnumerable < TSource [ TKey ] > ; param selector returns selectAsync < TResult > ( selector ) : IAsyncEnumerable < TResult > ; param key returns selectAsync < TKey extends keyof TSource , TResult > ( this , key ) : IAsyncEnumerable < TResult > ; param selector returns selectMany < TResult > ( selector ) : IEnumerable < TResult > ; param selector returns selectMany < TBindedSource extends { [ key ] : Iterable < TOut > ; } , TOut > ( this , selector ) : IEnumerable < TOut > ; param selector returns selectManyAsync < TResult > ( selector ) : IAsyncEnumerable < TResult > ; param second param comparer see { StrictEqualityComparer } returns sequenceEquals ( second , comparer ? ) : boolean ; param second param comparer returns sequenceEqualsAsync ( second , comparer ) : Promise < boolean > ; param predicate throws returns single ( predicate ? ) : TSource ; param predicate throws returns singleAsync ( predicate ) : Promise < TSource > ; param predicate throws returns singleOrDefault ( predicate ? ) : TSource | null ; param predicate throws returns singleOrDefaultAsync ( predicate ) : Promise < TSource | null > ; param count returns skip ( count ) : IEnumerable < TSource > ; param predicate returns skipWhile ( predicate ) : IEnumerable < TSource > ; param predicate returns skipWhileAsync ( predicate ) : IAsyncEnumerable < TSource > ; returns sum ( this ) : number ; param selector returns sum ( selector ) : number ; param selector returns sumAsync ( selector ) : Promise < number > ; param amount returns take ( amount ) : IEnumerable < TSource > ; param predicate returns takeWhile ( predicate ) : IEnumerable < TSource > ; param predicate returns takeWhileAsync ( predicate ) : IAsyncEnumerable < TSource > ; returns toArray ( ) : TSource [ ] ; param selector returns toMap < TKey > ( selector ) : Map < TKey , TSource [ ] > ; param selector returns toMapAsync < TKey > ( selector ) : Promise < Map < TKey , TSource [ ] > > ; param selector returns toObject < TKey extends keyof any > ( selector ) : Record < TKey , TSource > ; param selector returns toObjectAsync < TKey extends keyof any > ( selector ) : Promise < Record < TKey , TSource > > ; returns toSet ( ) : Set < TSource > ; param second param comparer returns union ( second , comparer ? ) : IEnumerable < TSource > ; param second param comparer returns unionAsync ( second , comparer ) : IAsyncEnumerable < TSource > ; param predicate returns where ( predicate ) : IEnumerable < TSource > ; param predicate returns whereAsync ( predicate ) : IAsyncEnumerable < TSource > ; param second returns zip < TSecond > ( second ) : IEnumerable < [ TSource , TSecond ] > ; param second param resultSelector returns zip < TSecond , TResult > ( second , resultSelector ) : IEnumerable < TResult > ; param second param resultSelector returns zipAsync < TSecond , TResult > ( second , resultSelector ) : IAsyncEnumerable < TResult > ; [ Symbol . iterator ] ( ) : IterableIterator < TSource > ; }