## Index

### Namespaces

- Op

### Interfaces

- ConsumeAsyncOptions
- ConsumeOptions

### Functions (Query)

- choose
- chooseAsync
- conditional
- consume
- consumeAsync
- continuous
- continuousAsync
- empty
- emptyAsync
- generate
- generateAsync
- ifAsync
- objectEntries
- objectEntriesAsync
- objectKeys
- objectKeysAsync
- objectValues
- objectValuesAsync
- once
- onceAsync
- range
- repeat
- repeatAsync

### Functions (Scalar)

- average
- averageAsync
- breakAsync
- copyTo
- copyToAsync
- corresponds
- correspondsAsync
- correspondsBy
- correspondsByAsync
- count
- countAsync
- drain
- drainAsync
- elementAt
- elementAtAsync
- endsWith
- endsWithAsync
- evalAsync
- every
- everyAsync
- first
- firstAsync
- forEach
- forEachAsync
- includes
- includesAsync
- includesSequence
- includesSequenceAsync
- last
- lastAsync
- max
- maxAsync
- maxBy
- maxByAsync
- min
- minAsync
- minBy
- minByAsync
- reduce
- reduceAsync
- reduceRight
- reduceRightAsync
- single
- singleAsync
- some
- someAsync
- span
- spanAsync
- startsWith
- startsWithAsync
- sum
- sumAsync
- toArray
- toArrayAsync
- toLookup
- toLookupAsync
- toMap
- toMapAsync
- toObject
- toObjectAsync
- toSet
- toSetAsync
- unzip
- unzipAsync

### Functions (Subquery)

- append
- appendAsync
- concat
- concatAsync
- defaultIfEmpty
- defaultIfEmptyAsync
- distinct
- distinctAsync
- distinctBy
- distinctByAsync
- except
- exceptAsync
- exceptBy
- exceptByAsync
- exclude
- excludeAsync
- expand
- expandAsync
- filter
- filterAsync
- filterBy
- filterByAsync
- filterDefined
- filterDefinedAsync
- flatMap
- flatMapAsync
- groupBy
- groupByAsync
- intersect
- intersectAsync
- intersectBy
- intersectByAsync
- map
- mapAsync
- pageBy
- pageByAsync
- patch
- patchAsync
- prepend
- prependAsync
- reverse
- reverseAsync
- scan
- scanAsync
- scanRight
- scanRightAsync
- skip
- skipAsync
- skipRight
- skipRightAsync
- skipUntil
- skipUntilAsync
- skipWhile
- skipWhileAsync
- spanMap
- spanMapAsync
- symmetricDifference
- symmetricDifferenceAsync
- symmetricDifferenceBy
- symmetricDifferenceByAsync
- take
- takeAsync
- takeRight
- takeRightAsync
- takeUntil
- takeUntilAsync
- takeWhile
- takeWhileAsync
- tap
- tapAsync
- through
- throughAsync
- union
- unionAsync
- unionBy
- unionByAsync

### Functions (Order)

- orderBy
- orderByAsync
- orderByDescending
- orderByDescendingAsync
- thenBy
- thenByAsync
- thenByDescending
- thenByDescendingAsync

### Functions (Join)

- fullJoin
- fullJoinAsync
- groupJoin
- groupJoinAsync
- join
- joinAsync
- zip
- zipAsync

### Functions (Hierarchy)

- ancestors
- ancestorsAndSelf
- ancestorsAndSelfAsync
- ancestorsAsync
- bottomMost
- bottomMostAsync
- children
- childrenAsync
- descendants
- descendantsAndSelf
- descendantsAndSelfAsync
- descendantsAsync
- hierarchy
- hierarchyAsync
- nthChild
- nthChildAsync
- parents
- parentsAsync
- root
- rootAsync
- self
- selfAsync
- siblings
- siblingsAfterSelf
- siblingsAfterSelfAsync
- siblingsAndSelf
- siblingsAndSelfAsync
- siblingsAsync
- siblingsBeforeSelf
- siblingsBeforeSelfAsync
- toHierarchy
- toHierarchyAsync
- topMost
- topMostAsync

### Functions

- F
- T
- compare
- compose
- decrementer
- equate
- identity
- incrementer
- lazy
- noop
- property
- thunk
- tuple

## Functions (Query)

### choose

- choose<K, V>(chooser: function, choices: Queryable<Choice<K, V>>, otherwise?: Queryable<V>): Iterable<V>

- - Defined in fn/choose.ts:31

  Creates an [[Iterable]] that iterates the elements from sources picked from a list based on the result of a lazily evaluated choice.

  category

    Query

  #### Type parameters

  - K
  - V

  #### Parameters

  - chooser: function —

    A callback used to choose a source.

    - - (): K

      - #### Returns K

  - choices: Queryable<Choice<K, V>> —

    A Queryable of key/value pairs, where each value is a Queryable object.

  - Optional otherwise: Queryable<V> —

    A default source to use when another choice could not be made.

  #### Returns Iterable<V>

### chooseAsync

- chooseAsync<K, V>(chooser: function, choices: AsyncQueryable<AsyncChoice<K, V>>, otherwise?: AsyncQueryable<V>): AsyncIterable<V>

- - Defined in fn/chooseAsync.ts:30

  Creates an [[Iterable]] that iterates the elements from sources picked from a list based on the result of a lazily evaluated choice.

  category

    Query

  #### Type parameters

  - K
  - V

  #### Parameters

  - chooser: function —

    A callback used to choose a source.

    - - (): PromiseLike<K> | K

      - #### Returns PromiseLike<K> | K

  - choices: AsyncQueryable<AsyncChoice<K, V>> —

    An AsyncQueryable of key/value pairs, where each value is an AsyncQueryable object.

  - Optional otherwise: AsyncQueryable<V> —

    A default source to use when another choice could not be made.

  #### Returns AsyncIterable<V>

### conditional

- conditional<T>(condition: function, thenQueryable: Queryable<T>, elseQueryable?: Queryable<T>): Iterable<T>

- - Defined in fn/conditional.ts:31

  Creates an [[Iterable]] that iterates the elements from one of two sources based on the result of a lazily evaluated condition.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - condition: function —

    A callback used to choose a source.

    - - (): boolean

      - #### Returns boolean

  - thenQueryable: Queryable<T> —

    The source to use when the callback evaluates to `true`.

  - Optional elseQueryable: Queryable<T> —

    The source to use when the callback evaluates to `false`.

  #### Returns Iterable<T>

### consume

- consume<T>(iterator: Iterator<T>, options?: ConsumeOptions): Iterable<T>

- - Defined in fn/consume.ts:34

  Creates an [[Iterable]] that, when iterated, consumes the provided [[Iterator]].

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - iterator: Iterator<T> —

    An [[Iterator]] object.

  - Default value options: ConsumeOptions = {}

  #### Returns Iterable<T>

### consumeAsync

- consumeAsync<T>(iterator: AsyncIterator<T>, __namedParameters?: object): AsyncIterable<T>

- - Defined in fn/consumeAsync.ts:33

  Creates an [[AsyncIterable]] that, when iterated, consumes the provided [[AsyncIterator]].

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - iterator: AsyncIterator<T> —

    An [[AsyncIterator]] object.

  - Default value __namedParameters: object = {}

  #### Returns AsyncIterable<T>

### continuous

- continuous<T>(value: T): Iterable<T>

- - Defined in fn/continuous.ts:26

  Creates an [[Iterable]] that repeats the provided value forever.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - value: T —

    The value for each element of the [[Iterable]].

  #### Returns Iterable<T>

### continuousAsync

- continuousAsync<T>(value: PromiseLike<T> | T): AsyncIterable<T>

- - Defined in fn/continuousAsync.ts:26

  Creates an [[AsyncIterable]] that repeats the provided value forever.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - value: PromiseLike<T> | T —

    The value for each element of the [[AsyncIterable]].

  #### Returns AsyncIterable<T>

### empty

- empty<T>(): Iterable<T>

- - Defined in fn/empty.ts:24

  Creates an [[Iterable]] with no elements.

  category

    Query

  #### Type parameters

  - T

  #### Returns Iterable<T>

### emptyAsync

- emptyAsync<T>(): AsyncIterable<T>

- - Defined in fn/emptyAsync.ts:24

  Creates an [[AsyncIterable]] with no elements.

  category

    Query

  #### Type parameters

  - T

  #### Returns AsyncIterable<T>

### generate

- generate<T>(count: number, generator: function): Iterable<T>

- - Defined in fn/generate.ts:28

  Creates an [[Iterable]] whose values are provided by a callback executed a provided number of times.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - count: number —

    The number of times to execute the callback.

  - generator: function —

    The callback to execute.

    - - (offset: number): T

      - #### Parameters

        - offset: number

        #### Returns T

  #### Returns Iterable<T>

### generateAsync

- generateAsync<T>(count: number, generator: function): AsyncIterable<T>

- - Defined in fn/generateAsync.ts:28

  Creates an [[AsyncIterable]] whose values are provided by a callback executed a provided number of times.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - count: number —

    The number of times to execute the callback.

  - generator: function —

    The callback to execute.

    - - (offset: number): PromiseLike<T> | T

      - #### Parameters

        - offset: number

        #### Returns PromiseLike<T> | T

  #### Returns AsyncIterable<T>

### ifAsync

- ifAsync<T>(condition: function, thenQueryable: AsyncQueryable<T>, elseQueryable?: AsyncQueryable<T>): AsyncIterable<T>

- - Defined in fn/ifAsync.ts:31

  Creates an [[AsyncIterable]] that iterates the elements from one of two sources based on the result of a lazily evaluated condition.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - condition: function —

    A callback used to choose a source.

    - - (): PromiseLike<boolean> | boolean

      - #### Returns PromiseLike<boolean> | boolean

  - thenQueryable: AsyncQueryable<T> —

    The source to use when the callback evaluates to `true`.

  - Optional elseQueryable: AsyncQueryable<T> —

    The source to use when the callback evaluates to `false`.

  #### Returns AsyncIterable<T>

### objectEntries

- objectEntries<T>(source: T): Iterable<KeyValuePair<T, Extract<keyof T, string>>>

- - Defined in fn/objectEntries.ts:27

  Creates an [[Iterable]] for the own property entries of an `object`.

  category

    Query

  #### Type parameters

  - T: object

  #### Parameters

  - source: T —

    An `object`.

  #### Returns Iterable<KeyValuePair<T, Extract<keyof T, string>>>

### objectEntriesAsync

- objectEntriesAsync<T>(source: PromiseLike<T> | T): AsyncIterable<KeyValuePair<T, Extract<keyof T, string>>>

- - Defined in fn/objectEntriesAsync.ts:27

  Creates an [[AsyncIterable]] for the own property entries of an `object`.

  category

    Query

  #### Type parameters

  - T: object

  #### Parameters

  - source: PromiseLike<T> | T —

    An `object` or a [[Promise]] for an `object`.

  #### Returns AsyncIterable<KeyValuePair<T, Extract<keyof T, string>>>

### objectKeys

- objectKeys<T>(source: T): Iterable<Extract<keyof T, string>>

- - Defined in fn/objectKeys.ts:26

  Creates an [[Iterable]] for the own property keys of an `object`.

  category

    Query

  #### Type parameters

  - T: object

  #### Parameters

  - source: T —

    An `object`.

  #### Returns Iterable<Extract<keyof T, string>>

### objectKeysAsync

- objectKeysAsync<T>(source: PromiseLike<T> | T): AsyncIterable<Extract<keyof T, string>>

- - Defined in fn/objectKeysAsync.ts:26

  Creates an [[AsyncIterable]] for the own property keys of an `object`.

  category

    Query

  #### Type parameters

  - T: object

  #### Parameters

  - source: PromiseLike<T> | T —

    An `object` or a [[Promise]] for an `object`.

  #### Returns AsyncIterable<Extract<keyof T, string>>

### objectValues

- objectValues<T>(source: T): Iterable<T[Extract<keyof T, string>]>

- - Defined in fn/objectValues.ts:26

  Creates an [[Iterable]] for the own property values of an `object`.

  category

    Query

  #### Type parameters

  - T: object

  #### Parameters

  - source: T —

    An `object`.

  #### Returns Iterable<T[Extract<keyof T, string>]>

### objectValuesAsync

- objectValuesAsync<T>(source: PromiseLike<T> | T): AsyncIterable<T[Extract<keyof T, string>]>

- - Defined in fn/objectValuesAsync.ts:26

  Creates an [[AsyncIterable]] for the own property values of an `object`.

  category

    Query

  #### Type parameters

  - T: object

  #### Parameters

  - source: PromiseLike<T> | T —

    An `object` or a [[Promise]] for an `object`.

  #### Returns AsyncIterable<T[Extract<keyof T, string>]>

### once

- once<T>(value: T): Iterable<T>

- - Defined in fn/once.ts:26

  Creates an [[Iterable]] over a single element.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - value: T —

    The only element for the [[Iterable]].

  #### Returns Iterable<T>

### onceAsync

- onceAsync<T>(value: PromiseLike<T> | T): AsyncIterable<T>

- - Defined in fn/onceAsync.ts:26

  Creates an [[AsyncIterable]] over a single element.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - value: PromiseLike<T> | T —

    The only element for the [[AsyncIterable]].

  #### Returns AsyncIterable<T>

### range

- range(start: number, end: number, increment?: number): Iterable<number>

- - Defined in fn/range.ts:28

  Creates an [[Iterable]] over a range of numbers.

  category

    Query

  #### Parameters

  - start: number —

    The starting number of the range.

  - end: number —

    The ending number of the range.

  - Default value increment: number = 1 —

    The amount by which to change between each itereated value.

  #### Returns Iterable<number>

### repeat

- repeat<T>(value: T, count: number): Iterable<T>

- - Defined in fn/repeat.ts:27

  Creates an Iterable for a value repeated a provided number of times.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - value: T —

    The value for each element of the Iterable.

  - count: number —

    The number of times to repeat the value.

  #### Returns Iterable<T>

### repeatAsync

- repeatAsync<T>(value: PromiseLike<T> | T, count: number): AsyncIterable<T>

- - Defined in fn/repeatAsync.ts:27

  Creates an Iterable for a value repeated a provided number of times.

  category

    Query

  #### Type parameters

  - T

  #### Parameters

  - value: PromiseLike<T> | T —

    The value for each element of the Iterable.

  - count: number —

    The number of times to repeat the value.

  #### Returns AsyncIterable<T>

## Functions (Scalar)

### average

- average(source: Queryable<number>): number
- average<T>(source: Queryable<T>, elementSelector: function): number

- - Defined in fn/average.ts:28

  Computes the average for a series of numbers.

  category

    Scalar

  #### Parameters

  - source: Queryable<number> —

    A Queryable object.

  #### Returns number

- - Defined in fn/average.ts:36

  Computes the average for a series of numbers.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - elementSelector: function —

    A callback used to convert a value in `source` to a number.

    - - (element: T): number

      - #### Parameters

        - element: T

        #### Returns number

### averageAsync

- averageAsync(source: AsyncQueryable<number>): Promise<number>
- averageAsync<T>(source: AsyncQueryable<T>, elementSelector: function): Promise<number>

- - Defined in fn/averageAsync.ts:29

  Computes the average for a series of numbers. NOTE: If any element is not a `number`, this overload will throw.

  category

    Scalar

  #### Parameters

  - source: AsyncQueryable<number> —

    An AsyncQueryable object.

  #### Returns Promise<number>

- - Defined in fn/averageAsync.ts:37

  Computes the average for a series of numbers.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - elementSelector: function —

    A callback used to convert a value in `source` to a number.

    - - (element: T): number | PromiseLike<number>

      - #### Parameters

        - element: T

        #### Returns number | PromiseLike<number>

  #### Returns Promise<number>

### breakAsync

- breakAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, predicate: function): Promise<[HierarchyIterable<TNode, T>, AsyncHierarchyIterable<TNode, T>]>
- breakAsync<T>(source: AsyncQueryable<T>, predicate: function): Promise<[Iterable<T>, AsyncIterable<T>]>

- - Defined in fn/breakAsync.ts:39

  Creates a tuple whose first element is a HierarchyIterable containing the first span of elements that do not match the supplied predicate, and whose second element is an AsyncHierarchyIterable containing the remaining elements.

  The first HierarchyIterable is eagerly evaluated, while the second AsyncHierarchyIterable is lazily evaluated.

  category

    Scalar

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - predicate: function —

    The predicate used to match elements.

    - - (element: T, offset: number): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean | PromiseLike<boolean>

  #### Returns Promise<[HierarchyIterable<TNode, T>, AsyncHierarchyIterable<TNode, T>]>

- - Defined in fn/breakAsync.ts:52

  Creates a tuple whose first element is an [[Iterable]] containing the first span of elements that do not match the supplied predicate, and whose second element is an [[AsyncIterable]] containing the remaining elements.

  The first [[Iterable]] is eagerly evaluated, while the second [[AsyncIterable]] is lazily evaluated.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - predicate: function —

    The predicate used to match elements.

    - - (element: T, offset: number): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean | PromiseLike<boolean>

  #### Returns Promise<[Iterable<T>, AsyncIterable<T>]>

### copyTo

- copyTo<T, U>(source: Queryable<T>, dest: U, start?: number, count?: number): U

- - Defined in fn/copyTo.ts:30

  Writes each element of a source iterable to a destination array.

  category

    Scalar

  #### Type parameters

  - T
  - U: WritableArrayLike<T>

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - dest: U —

    The destination array.

  - Default value start: number = 0 —

    The offset into the array at which to start writing.

  - Default value count: number = dest.length - start —

    The number of elements to write to the array.

  #### Returns U

### copyToAsync

- copyToAsync<T, U>(source: AsyncQueryable<T>, dest: U, start?: number, count?: number): Promise<U>

- - Defined in fn/copyToAsync.ts:30

  Writes each element of a source iterable to a destination array.

  category

    Scalar

  #### Type parameters

  - T
  - U: WritableArrayLike<T>

  #### Parameters

  - source: AsyncQueryable<T> —

    A Queryable object.

  - dest: U —

    The destination array.

  - Default value start: number = 0 —

    The offset into the array at which to start writing.

  - Default value count: number = dest.length - start —

    The number of elements to write to the array.

  #### Returns Promise<U>

### corresponds

- corresponds<T>(left: Queryable<T>, right: Queryable<T>, equaler?: EqualityComparison<T> | Equaler<T>): boolean
- corresponds<T, U>(left: Queryable<T>, right: Queryable<U>, equaler: function): boolean

- - Defined in fn/corresponds.ts:33

  Computes a scalar value indicating whether every element in `left` corresponds to a matching element in `right` at the same position.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - left: Queryable<T> —

    A Queryable object.

  - right: Queryable<T> —

    A Queryable object.

  - Optional equaler: EqualityComparison<T> | Equaler<T> —

    An optional callback used to compare the equality of two elements.

  #### Returns boolean

- - Defined in fn/corresponds.ts:43

  Computes a scalar value indicating whether every element in `left` corresponds to a matching element in `right` at the same position.

  category

    Scalar

  #### Type parameters

  - T
  - U

  #### Parameters

  - left: Queryable<T> —

    A Queryable object.

  - right: Queryable<U> —

    A Queryable object.

  - equaler: function —

    An optional callback used to compare the equality of two elements.

    - - (left: T, right: U): boolean

      - #### Parameters

        - left: T
        - right: U

        #### Returns boolean

### correspondsAsync

- correspondsAsync<T>(left: AsyncQueryable<T>, right: AsyncQueryable<T>, equaler?: EqualityComparison<T> | Equaler<T>): Promise<boolean>
- correspondsAsync<T, U>(left: AsyncQueryable<T>, right: AsyncQueryable<U>, equaler: function): Promise<boolean>

- - Defined in fn/correspondsAsync.ts:33

  Computes a scalar value indicating whether every element in `left` corresponds to a matching element in `right` at the same position.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: EqualityComparison<T> | Equaler<T> —

    An optional callback used to compare the equality of two elements.

  #### Returns Promise<boolean>

- - Defined in fn/correspondsAsync.ts:43

  Computes a scalar value indicating whether every element in `left` corresponds to a matching element in `right` at the same position.

  category

    Scalar

  #### Type parameters

  - T
  - U

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<U> —

    An AsyncQueryable object.

  - equaler: function —

    An optional callback used to compare the equality of two elements.

    - - (left: T, right: U): boolean

      - #### Parameters

        - left: T
        - right: U

        #### Returns boolean

  #### Returns Promise<boolean>

### correspondsBy

- correspondsBy<T, K>(left: Queryable<T>, right: Queryable<T>, keySelector: function): boolean
- correspondsBy<T, U, K>(left: Queryable<T>, right: Queryable<U>, leftKeySelector: function, rightKeySelector: function, keyEqualer?: EqualityComparison<K> | Equaler<K>): boolean

- - Defined in fn/correspondsBy.ts:31

  Computes a scalar value indicating whether the key for every element in `left` corresponds to a matching key in `right` at the same position.

  category

    Scalar

  #### Type parameters

  - T
  - K

  #### Parameters

  - left: Queryable<T> —

    A Queryable object.

  - right: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  #### Returns boolean

- - Defined in fn/correspondsBy.ts:43

  Computes a scalar value indicating whether the key for every element in `left` corresponds to a matching key in `right` at the same position.

  category

    Scalar

  #### Type parameters

  - T
  - U
  - K

  #### Parameters

  - left: Queryable<T> —

    A Queryable object.

  - right: Queryable<U> —

    A Queryable object.

  - leftKeySelector: function —

    A callback used to select the key for each element in `left`.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - rightKeySelector: function —

    A callback used to select the key for each element in `right`.

    - - (element: U): K

      - #### Parameters

        - element: U

        #### Returns K

  - Optional keyEqualer: EqualityComparison<K> | Equaler<K> —

    An optional callback used to compare the equality of two keys.

  #### Returns boolean

### correspondsByAsync

- correspondsByAsync<T, K>(left: AsyncQueryable<T>, right: AsyncQueryable<T>, keySelector: function): Promise<boolean>
- correspondsByAsync<T, U, K>(left: AsyncQueryable<T>, right: AsyncQueryable<U>, leftKeySelector: function, rightKeySelector: function, keyEqualer?: EqualityComparison<K> | Equaler<K>): Promise<boolean>

- - Defined in fn/correspondsByAsync.ts:31

  Computes a scalar value indicating whether the key for every element in `left` corresponds to a matching key in `right` at the same position.

  category

    Scalar

  #### Type parameters

  - T
  - K

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  #### Returns Promise<boolean>

- - Defined in fn/correspondsByAsync.ts:43

  Computes a scalar value indicating whether the key for every element in `left` corresponds to a matching key in `right` at the same position.

  category

    Scalar

  #### Type parameters

  - T
  - U
  - K

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<U> —

    An AsyncQueryable object.

  - leftKeySelector: function —

    A callback used to select the key for each element in `left`.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - rightKeySelector: function —

    A callback used to select the key for each element in `right`.

    - - (element: U): K

      - #### Parameters

        - element: U

        #### Returns K

  - Optional keyEqualer: EqualityComparison<K> | Equaler<K> —

    An optional callback used to compare the equality of two keys.

  #### Returns Promise<boolean>

### count

- count<T>(source: Queryable<T>, predicate?: function): number

- - Defined in fn/count.ts:30

  Counts the number of elements, optionally filtering elements using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - Default value predicate: function = T —

    An optional callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns number

### countAsync

- countAsync<T>(source: AsyncQueryable<T>, predicate?: function): Promise<number>

- - Defined in fn/countAsync.ts:30

  Counts the number of elements, optionally filtering elements using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    A Queryable object.

  - Default value predicate: function = T —

    An optional callback used to match each element.

    - - (element: T): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T

        #### Returns boolean | PromiseLike<boolean>

  #### Returns Promise<number>

### drain

- drain<T>(source: Queryable<T>): void

- - Defined in fn/drain.ts:27

  Iterates over all of the elements in a Queryable, ignoring the results.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  #### Returns void

### drainAsync

- drainAsync<T>(source: AsyncQueryable<T>): Promise<void>

- - Defined in fn/drainAsync.ts:27

  Iterates over all of the elements in an AsyncQueryable, ignoring the results.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    A Queryable object.

  #### Returns Promise<void>

### elementAt

- elementAt<T>(source: Queryable<T>, offset: number): T | undefined

- - Defined in fn/elementAt.ts:30

  Finds the value at the provided offset. A negative offset starts from the last element.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - offset: number —

    An offset.

  #### Returns T | undefined

### elementAtAsync

- elementAtAsync<T>(source: AsyncQueryable<T>, offset: number): Promise<T | undefined>

- - Defined in fn/elementAtAsync.ts:30

  Finds the value at the provided offset. A negative offset starts from the last element.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - offset: number —

    An offset.

  #### Returns Promise<T | undefined>

### endsWith

- endsWith<T>(left: Queryable<T>, right: Queryable<T>, equaler?: EqualityComparison<T> | Equaler<T>): boolean
- endsWith<T, U>(left: Queryable<T>, right: Queryable<U>, equaler: function): boolean

- - Defined in fn/endsWith.ts:33

  Computes a scalar value indicating whether the elements of `left` end with the same sequence of elements in `right`.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - left: Queryable<T> —

    A Queryable object.

  - right: Queryable<T> —

    A Queryable object.

  - Optional equaler: EqualityComparison<T> | Equaler<T> —

    An optional callback used to compare the equality of two elements.

  #### Returns boolean

- - Defined in fn/endsWith.ts:43

  Computes a scalar value indicating whether the elements of `left` end with the same sequence of elements in `right`.

  category

    Scalar

  #### Type parameters

  - T
  - U

  #### Parameters

  - left: Queryable<T> —

    A Queryable object.

  - right: Queryable<U> —

    A Queryable object.

  - equaler: function —

    An optional callback used to compare the equality of two elements.

    - - (left: T, right: U): boolean

      - #### Parameters

        - left: T
        - right: U

        #### Returns boolean

### endsWithAsync

- endsWithAsync<T>(left: AsyncQueryable<T>, right: AsyncQueryable<T>, equaler?: EqualityComparison<T> | Equaler<T>): Promise<boolean>
- endsWithAsync<T, U>(left: AsyncQueryable<T>, right: AsyncQueryable<U>, equaler: function): Promise<boolean>

- - Defined in fn/endsWithAsync.ts:33

  Computes a scalar value indicating whether the elements of `left` end with the same sequence of elements in `right`.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: EqualityComparison<T> | Equaler<T> —

    An optional callback used to compare the equality of two elements.

  #### Returns Promise<boolean>

- - Defined in fn/endsWithAsync.ts:43

  Computes a scalar value indicating whether the elements of `left` end with the same sequence of elements in `right`.

  category

    Scalar

  #### Type parameters

  - T
  - U

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<U> —

    An AsyncQueryable object.

  - equaler: function —

    An optional callback used to compare the equality of two elements.

    - - (left: T, right: U): boolean

      - #### Parameters

        - left: T
        - right: U

        #### Returns boolean

  #### Returns Promise<boolean>

### evalAsync

- evalAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>): Promise<HierarchyIterable<TNode, T>>
- evalAsync<T>(source: AsyncQueryable<T>): Promise<Iterable<T>>

- - Defined in fn/evalAsync.ts:29

  Eagerly evaluate a HierarchyIterable or AsyncHierarchyIterable, returning a [[Promise]] for a HierarchyIterable for the resolved elements of the original sequence.

  category

    Scalar

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  #### Returns Promise<HierarchyIterable<TNode, T>>

- - Defined in fn/evalAsync.ts:37

  Eagerly evaluate an AsyncQueryable, returning a [[Promise]] for an [[Iterable]] for the resolved elements of the original sequence.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  #### Returns Promise<Iterable<T>>

### every

- every<T, U>(source: Queryable<T>, predicate: function): boolean
- every<T>(source: Queryable<T>, predicate: function): boolean

- - Defined in fn/every.ts:28

  Computes a scalar value indicating whether all elements match the supplied callback.

  category

    Scalar

  #### Type parameters

  - T
  - U: T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

- - Defined in fn/every.ts:36

  Computes a scalar value indicating whether all elements match the supplied callback.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

### everyAsync

- everyAsync<T>(source: AsyncQueryable<T>, predicate: function): Promise<boolean>

- - Defined in fn/everyAsync.ts:28

  Computes a scalar value indicating whether all elements match the supplied callback.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T

        #### Returns boolean | PromiseLike<boolean>

  #### Returns Promise<boolean>

### first

- first<T>(source: Queryable<T>, predicate?: function): T | undefined

- - Defined in fn/first.ts:29

  Gets the first element, optionally filtering elements using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - Default value predicate: function = T —

    An optional callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns T | undefined

### firstAsync

- firstAsync<T, U>(source: AsyncQueryable<T>, predicate: function): Promise<U | undefined>
- firstAsync<T>(source: AsyncQueryable<T>, predicate?: undefined | function): Promise<T | undefined>

- - Defined in fn/firstAsync.ts:29

  Gets the first element, optionally filtering elements using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T
  - U: T

  #### Parameters

  - source: AsyncQueryable<T> —

    A Queryable object.

  - predicate: function —

    An optional callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns Promise<U | undefined>

- - Defined in fn/firstAsync.ts:37

  Gets the first element, optionally filtering elements using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    A Queryable object.

  - Optional predicate: undefined | function —

    An optional callback used to match each element.

  #### Returns Promise<T | undefined>

### forEach

- forEach<T>(source: Queryable<T>, callback: function): void

- - Defined in fn/forEach.ts:28

  Invokes a callback for each element of `source`.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): void

      - #### Parameters

        - element: T
        - offset: number

        #### Returns void

### forEachAsync

- forEachAsync<T>(source: AsyncQueryable<T>, callback: function): Promise<void>

- - Defined in fn/forEachAsync.ts:28

  Invokes a callback for each element of `source`.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): void | PromiseLike<void>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns void | PromiseLike<void>

  #### Returns Promise<void>

### includes

- includes<T>(source: Queryable<T>, value: T, equaler?: EqualityComparison<T> | Equaler<T>): boolean
- includes<T, U>(source: Queryable<T>, value: U, equaler: function): boolean

- - Defined in fn/includes.ts:30

  Computes a scalar value indicating whether the provided value is included in a Queryable.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - value: T —

    A value.

  - Optional equaler: EqualityComparison<T> | Equaler<T> —

    An optional callback used to compare the equality of two elements.

  #### Returns boolean

- - Defined in fn/includes.ts:39

  Computes a scalar value indicating whether the provided value is included in a Queryable.

  category

    Scalar

  #### Type parameters

  - T
  - U

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - value: U —

    A value.

  - equaler: function —

    An optional callback used to compare the equality of two elements.

    - - (left: T, right: U): boolean

      - #### Parameters

        - left: T
        - right: U

        #### Returns boolean

### includesAsync

- includesAsync<T>(source: AsyncQueryable<T>, value: T, equaler?: EqualityComparison<T> | Equaler<T>): Promise<boolean>
- includesAsync<T, U>(source: AsyncQueryable<T>, value: U, equaler: function): Promise<boolean>

- - Defined in fn/includesAsync.ts:30

  Computes a scalar value indicating whether the provided value is included in an AsyncQueryable.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - value: T —

    A value.

  - Optional equaler: EqualityComparison<T> | Equaler<T> —

    An optional callback used to compare the equality of two elements.

  #### Returns Promise<boolean>

- - Defined in fn/includesAsync.ts:39

  Computes a scalar value indicating whether the provided value is included in an AsyncQueryable.

  category

    Scalar

  #### Type parameters

  - T
  - U

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - value: U —

    A value.

  - equaler: function —

    An optional callback used to compare the equality of two elements.

    - - (left: T, right: U): boolean

      - #### Parameters

        - left: T
        - right: U

        #### Returns boolean

  #### Returns Promise<boolean>

### includesSequence

- includesSequence<T>(left: Queryable<T>, right: Queryable<T>, equaler?: EqualityComparison<T> | Equaler<T>): boolean
- includesSequence<T, U>(left: Queryable<T>, right: Queryable<U>, equaler: function): boolean

- - Defined in fn/includesSequence.ts:32

  Computes a scalar value indicating whether the elements of `left` include an exact sequence of elements from `right`.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - left: Queryable<T> —

    A Queryable object.

  - right: Queryable<T> —

    A Queryable object.

  - Optional equaler: EqualityComparison<T> | Equaler<T> —

    A callback used to compare the equality of two elements.

  #### Returns boolean

- - Defined in fn/includesSequence.ts:42

  Computes a scalar value indicating whether the elements of `left` include an exact sequence of elements from `right`.

  category

    Scalar

  #### Type parameters

  - T
  - U

  #### Parameters

  - left: Queryable<T> —

    A Queryable object.

  - right: Queryable<U> —

    A Queryable object.

  - equaler: function —

    A callback used to compare the equality of two elements.

    - - (left: T, right: U): boolean

      - #### Parameters

        - left: T
        - right: U

        #### Returns boolean

### includesSequenceAsync

- includesSequenceAsync<T>(left: AsyncQueryable<T>, right: AsyncQueryable<T>, equaler?: EqualityComparison<T> | Equaler<T>): Promise<boolean>
- includesSequenceAsync<T, U>(left: AsyncQueryable<T>, right: AsyncQueryable<U>, equaler: function): Promise<boolean>

- - Defined in fn/includesSequenceAsync.ts:32

  Computes a scalar value indicating whether the elements of `left` include an exact sequence of elements from `right`.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: EqualityComparison<T> | Equaler<T> —

    A callback used to compare the equality of two elements.

  #### Returns Promise<boolean>

- - Defined in fn/includesSequenceAsync.ts:42

  Computes a scalar value indicating whether the elements of `left` include an exact sequence of elements from `right`.

  category

    Scalar

  #### Type parameters

  - T
  - U

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<U> —

    An AsyncQueryable object.

  - equaler: function —

    A callback used to compare the equality of two elements.

    - - (left: T, right: U): boolean

      - #### Parameters

        - left: T
        - right: U

        #### Returns boolean

  #### Returns Promise<boolean>

### last

- last<T>(source: Queryable<T>, predicate?: function): T | undefined

- - Defined in fn/last.ts:30

  Gets the last element of a Queryable, optionally filtering elements using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - Default value predicate: function = T —

    An optional callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns T | undefined

### lastAsync

- lastAsync<T, U>(source: AsyncQueryable<T>, predicate: function): Promise<U | undefined>
- lastAsync<T>(source: AsyncQueryable<T>, predicate?: undefined | function): Promise<T | undefined>

- - Defined in fn/lastAsync.ts:30

  Gets the last element of a Queryable, optionally filtering elements using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T
  - U: T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - predicate: function —

    An optional callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns Promise<U | undefined>

- - Defined in fn/lastAsync.ts:39

  Gets the last element of a Queryable, optionally filtering elements using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional predicate: undefined | function —

    An optional callback used to match each element.

  #### Returns Promise<T | undefined>

### max

- max<T>(source: Queryable<T>, comparer?: Comparison<T> | Comparer<T>): T | undefined

- - Defined in fn/max.ts:31

  Gets the maximum element of a Queryable, optionally comparing elements using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - Default value comparer: Comparison<T> | Comparer<T> = Comparer.defaultComparer —

    An optional callback used to compare two elements.

  #### Returns T | undefined

### maxAsync

- maxAsync<T>(source: AsyncQueryable<T>, comparer?: Comparison<T> | Comparer<T>): Promise<T | undefined>

- - Defined in fn/maxAsync.ts:31

  Gets the maximum element of an AsyncQueryable, optionally comparing elements using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Default value comparer: Comparison<T> | Comparer<T> = Comparer.defaultComparer —

    An optional callback used to compare two elements.

  #### Returns Promise<T | undefined>

### maxBy

- maxBy<T, K>(source: Queryable<T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): T | undefined

- - Defined in fn/maxBy.ts:30

  Gets the maximum element of a Queryable, optionally comparing the keys of each element using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to choose the key to compare.

    - - (value: T): K

      - #### Parameters

        - value: T

        #### Returns K

  - Default value keyComparer: Comparison<K> | Comparer<K> = Comparer.defaultComparer —

    An optional callback used to compare the keys.

  #### Returns T | undefined

### maxByAsync

- maxByAsync<T, K>(source: AsyncQueryable<T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): Promise<T | undefined>

- - Defined in fn/maxByAsync.ts:30

  Gets the maximum element of an AsyncQueryable, optionally comparing the keys of each element using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to choose the key to compare.

    - - (value: T): K

      - #### Parameters

        - value: T

        #### Returns K

  - Default value keyComparer: Comparison<K> | Comparer<K> = Comparer.defaultComparer —

    An optional callback used to compare the keys.

  #### Returns Promise<T | undefined>

### min

- min<T>(source: Queryable<T>, comparer?: Comparison<T> | Comparer<T>): T | undefined

- - Defined in fn/min.ts:31

  Gets the minimum element of a Queryable, optionally comparing elements using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - Default value comparer: Comparison<T> | Comparer<T> = Comparer.defaultComparer —

    An optional callback used to compare two elements.

  #### Returns T | undefined

### minAsync

- minAsync<T>(source: AsyncQueryable<T>, comparer?: Comparison<T> | Comparer<T>): Promise<T | undefined>

- - Defined in fn/minAsync.ts:31

  Gets the minimum element of an AsyncQueryable, optionally comparing elements using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Default value comparer: Comparison<T> | Comparer<T> = Comparer.defaultComparer —

    An optional callback used to compare two elements.

  #### Returns Promise<T | undefined>

### minBy

- minBy<T, K>(source: Queryable<T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): T | undefined

- - Defined in fn/minBy.ts:30

  Gets the minimum element of a Queryable, optionally comparing the keys of each element using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to choose the key to compare.

    - - (value: T): K

      - #### Parameters

        - value: T

        #### Returns K

  - Default value keyComparer: Comparison<K> | Comparer<K> = Comparer.defaultComparer —

    An optional callback used to compare the keys.

  #### Returns T | undefined

### minByAsync

- minByAsync<T, K>(source: AsyncQueryable<T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): Promise<T | undefined>

- - Defined in fn/minByAsync.ts:30

  Gets the minimum element of an AsyncQueryable, optionally comparing the keys of each element using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to choose the key to compare.

    - - (value: T): K

      - #### Parameters

        - value: T

        #### Returns K

  - Default value keyComparer: Comparison<K> | Comparer<K> = Comparer.defaultComparer —

    An optional callback used to compare the keys.

  #### Returns Promise<T | undefined>

### reduce

- reduce<T>(source: Queryable<T>, accumulator: function): T
- reduce<T, U>(source: Queryable<T>, accumulator: function, seed: U, resultSelector?: undefined | function): U
- reduce<T, U, R>(source: Queryable<T>, accumulator: function, seed: U, resultSelector: function): R

- - Defined in fn/reduce.ts:29

  Computes a scalar value by applying an accumulator callback over each element.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - accumulator: function —

    the callback used to compute the result.

    - - (current: T, element: T, offset: number): T

      - #### Parameters

        - current: T
        - element: T
        - offset: number

        #### Returns T

- - Defined in fn/reduce.ts:38

  Computes a scalar value by applying an accumulator callback over each element.

  category

    Scalar

  #### Type parameters

  - T
  - U

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - accumulator: function —

    the callback used to compute the result.

    - - (current: U, element: T, offset: number): U

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U

  - seed: U —

    An optional seed value.

  - Optional resultSelector: undefined | function —

    An optional callback used to compute the final result.

  #### Returns U

- - Defined in fn/reduce.ts:48

  Computes a scalar value by applying an accumulator callback over each element.

  category

    Scalar

  #### Type parameters

  - T
  - U
  - R

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - accumulator: function —

    the callback used to compute the result.

    - - (current: U, element: T, offset: number): U

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U

  - seed: U —

    An optional seed value.

  - resultSelector: function —

    An optional callback used to compute the final result.

    - - (result: U, count: number): R

      - #### Parameters

        - result: U
        - count: number

        #### Returns R

### reduceAsync

- reduceAsync<T>(source: AsyncQueryable<T>, accumulator: function): Promise<T>
- reduceAsync<T, U>(source: AsyncQueryable<T>, accumulator: function, seed: U): Promise<U>
- reduceAsync<T, U, R>(source: AsyncQueryable<T>, accumulator: function, seed: U, resultSelector: function): Promise<R>

- - Defined in fn/reduceAsync.ts:29

  Computes a scalar value by applying an accumulator callback over each element.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - accumulator: function —

    the callback used to compute the result.

    - - (current: T, element: T, offset: number): T | PromiseLike<T>

      - #### Parameters

        - current: T
        - element: T
        - offset: number

        #### Returns T | PromiseLike<T>

  #### Returns Promise<T>

- - Defined in fn/reduceAsync.ts:38

  Computes a scalar value by applying an accumulator callback over each element.

  category

    Scalar

  #### Type parameters

  - T
  - U

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - accumulator: function —

    the callback used to compute the result.

    - - (current: U, element: T, offset: number): U | PromiseLike<U>

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U | PromiseLike<U>

  - seed: U —

    An optional seed value.

  #### Returns Promise<U>

- - Defined in fn/reduceAsync.ts:48

  Computes a scalar value by applying an accumulator callback over each element.

  category

    Scalar

  #### Type parameters

  - T
  - U
  - R

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - accumulator: function —

    the callback used to compute the result.

    - - (current: U, element: T, offset: number): U | PromiseLike<T>

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U | PromiseLike<T>

  - seed: U —

    An optional seed value.

  - resultSelector: function —

    An optional callback used to compute the final result.

    - - (result: U, count: number): R | PromiseLike<R>

      - #### Parameters

        - result: U
        - count: number

        #### Returns R | PromiseLike<R>

  #### Returns Promise<R>

### reduceRight

- reduceRight<T>(source: Queryable<T>, accumulator: function): T
- reduceRight<T, U>(source: Queryable<T>, accumulator: function, seed: U, resultSelector?: undefined | function): U
- reduceRight<T, U, R>(source: Queryable<T>, accumulator: function, seed: U, resultSelector: function): R

- - Defined in fn/reduceRight.ts:30

  Computes a scalar value by applying an accumulator callback over each element in reverse.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - accumulator: function —

    the callback used to compute the result.

    - - (current: T, element: T, offset: number): T

      - #### Parameters

        - current: T
        - element: T
        - offset: number

        #### Returns T

- - Defined in fn/reduceRight.ts:39

  Computes a scalar value by applying an accumulator callback over each element in reverse.

  category

    Scalar

  #### Type parameters

  - T
  - U

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - accumulator: function —

    the callback used to compute the result.

    - - (current: U, element: T, offset: number): U

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U

  - seed: U —

    An optional seed value.

  - Optional resultSelector: undefined | function —

    An optional callback used to compute the final result.

  #### Returns U

- - Defined in fn/reduceRight.ts:49

  Computes a scalar value by applying an accumulator callback over each element in reverse.

  category

    Scalar

  #### Type parameters

  - T
  - U
  - R

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - accumulator: function —

    the callback used to compute the result.

    - - (current: U, element: T, offset: number): U

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U

  - seed: U —

    An optional seed value.

  - resultSelector: function —

    An optional callback used to compute the final result.

    - - (result: U, count: number): R

      - #### Parameters

        - result: U
        - count: number

        #### Returns R

### reduceRightAsync

- reduceRightAsync<T>(source: AsyncQueryable<T>, accumulator: function): Promise<T>
- reduceRightAsync<T, U>(source: AsyncQueryable<T>, accumulator: function, seed: U): Promise<U>
- reduceRightAsync<T, U, R>(source: AsyncQueryable<T>, accumulator: function, seed: U, resultSelector: function): Promise<R>

- - Defined in fn/reduceRightAsync.ts:30

  Computes a scalar value by applying an accumulator callback over each element in reverse.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - accumulator: function —

    the callback used to compute the result.

    - - (current: T, element: T, offset: number): T | PromiseLike<T>

      - #### Parameters

        - current: T
        - element: T
        - offset: number

        #### Returns T | PromiseLike<T>

  #### Returns Promise<T>

- - Defined in fn/reduceRightAsync.ts:39

  Computes a scalar value by applying an accumulator callback over each element in reverse.

  category

    Scalar

  #### Type parameters

  - T
  - U

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - accumulator: function —

    the callback used to compute the result.

    - - (current: U, element: T, offset: number): U | PromiseLike<U>

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U | PromiseLike<U>

  - seed: U —

    An optional seed value.

  #### Returns Promise<U>

- - Defined in fn/reduceRightAsync.ts:49

  Computes a scalar value by applying an accumulator callback over each element in reverse.

  category

    Scalar

  #### Type parameters

  - T
  - U
  - R

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - accumulator: function —

    the callback used to compute the result.

    - - (current: U, element: T, offset: number): U | PromiseLike<U>

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U | PromiseLike<U>

  - seed: U —

    An optional seed value.

  - resultSelector: function —

    An optional callback used to compute the final result.

    - - (result: U, count: number): R | PromiseLike<R>

      - #### Parameters

        - result: U
        - count: number

        #### Returns R | PromiseLike<R>

  #### Returns Promise<R>

### single

- single<T>(source: Queryable<T>, predicate?: function): undefined | T

- - Defined in fn/single.ts:29

  Gets the only element, or returns `undefined`.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - Default value predicate: function = T —

    An optional callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns undefined | T

### singleAsync

- singleAsync<T, U>(source: AsyncQueryable<T>, predicate: function): Promise<U | undefined>
- singleAsync<T>(source: AsyncQueryable<T>, predicate?: undefined | function): Promise<T | undefined>

- - Defined in fn/singleAsync.ts:29

  Gets the only element, or returns `undefined`.

  category

    Scalar

  #### Type parameters

  - T
  - U: T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - predicate: function —

    An optional callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns Promise<U | undefined>

- - Defined in fn/singleAsync.ts:37

  Gets the only element, or returns `undefined`.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional predicate: undefined | function —

    An optional callback used to match each element.

  #### Returns Promise<T | undefined>

### some

- some<T>(source: Queryable<T>, predicate?: function): boolean

- - Defined in fn/some.ts:30

  Computes a scalar value indicating whether `source` contains any elements, optionally filtering the elements using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - Default value predicate: function = T —

    An optional callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

### someAsync

- someAsync<T>(source: AsyncQueryable<T>, predicate?: function): Promise<boolean>

- - Defined in fn/someAsync.ts:30

  Computes a scalar value indicating whether `source` contains any elements, optionally filtering the elements using the supplied callback.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Default value predicate: function = T —

    An optional callback used to match each element.

    - - (element: T): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T

        #### Returns boolean | PromiseLike<boolean>

  #### Returns Promise<boolean>

### span

- span<TNode, T, U>(source: HierarchyIterable<TNode, T>, predicate: function): [HierarchyIterable<TNode, U>, HierarchyIterable<TNode, T>]
- span<TNode, T>(source: HierarchyIterable<TNode, T>, predicate: function): [HierarchyIterable<TNode, T>, HierarchyIterable<TNode, T>]
- span<T, U>(source: Queryable<T>, predicate: function): [Iterable<U>, Iterable<T>]
- span<T>(source: Queryable<T>, predicate: function): [Iterable<T>, Iterable<T>]

- - Defined in fn/span.ts:39

  Creates a tuple whose first element is an [[Iterable]] containing the first span of elements that match the supplied predicate, and whose second element is an [[Iterable]] containing the remaining elements.

  The first [[Iterable]] is eagerly evaluated, while the second [[Iterable]] is lazily evaluated.

  category

    Scalar

  #### Type parameters

  - TNode
  - T: TNode
  - U: T

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A Queryable object.

  - predicate: function —

    The predicate used to match elements.

    - - (element: T, offset: number): boolean

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean

  #### Returns [HierarchyIterable<TNode, U>, HierarchyIterable<TNode, T>]

- - Defined in fn/span.ts:52

  Creates a tuple whose first element is an [[Iterable]] containing the first span of elements that match the supplied predicate, and whose second element is an [[Iterable]] containing the remaining elements.

  The first [[Iterable]] is eagerly evaluated, while the second [[Iterable]] is lazily evaluated.

  category

    Scalar

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A Queryable object.

  - predicate: function —

    The predicate used to match elements.

    - - (element: T, offset: number): boolean

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean

  #### Returns [HierarchyIterable<TNode, T>, HierarchyIterable<TNode, T>]

- - Defined in fn/span.ts:65

  Creates a tuple whose first element is an [[Iterable]] containing the first span of elements that match the supplied predicate, and whose second element is an [[Iterable]] containing the remaining elements.

  The first [[Iterable]] is eagerly evaluated, while the second [[Iterable]] is lazily evaluated.

  category

    Scalar

  #### Type parameters

  - T
  - U: T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - predicate: function —

    The predicate used to match elements.

    - - (element: T, offset: number): boolean

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean

  #### Returns [Iterable<U>, Iterable<T>]

- - Defined in fn/span.ts:78

  Creates a tuple whose first element is an [[Iterable]] containing the first span of elements that match the supplied predicate, and whose second element is an [[Iterable]] containing the remaining elements.

  The first [[Iterable]] is eagerly evaluated, while the second [[Iterable]] is lazily evaluated.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - predicate: function —

    The predicate used to match elements.

    - - (element: T, offset: number): boolean

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean

  #### Returns [Iterable<T>, Iterable<T>]

### spanAsync

- spanAsync<TNode, T, U>(source: PossiblyAsyncHierarchyIterable<TNode, T>, predicate: function): Promise<[HierarchyIterable<TNode, U>, AsyncHierarchyIterable<TNode, T>]>
- spanAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, predicate: function): Promise<[HierarchyIterable<TNode, T>, AsyncHierarchyIterable<TNode, T>]>
- spanAsync<T, U>(source: AsyncQueryable<T>, predicate: function): Promise<[Iterable<U>, AsyncIterable<T>]>
- spanAsync<T>(source: AsyncQueryable<T>, predicate: function): Promise<[Iterable<T>, AsyncIterable<T>]>

- - Defined in fn/spanAsync.ts:39

  Creates a tuple whose first element is an [[Iterable]] containing the first span of elements that match the supplied predicate, and whose second element is an [[AsyncIterable]] containing the remaining elements.

  The first [[Iterable]] is eagerly evaluated, while the second [[AsyncIterable]] is lazily evaluated.

  category

    Scalar

  #### Type parameters

  - TNode
  - T: TNode
  - U: T

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - predicate: function —

    The predicate used to match elements.

    - - (element: T, offset: number): boolean

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean

  #### Returns Promise<[HierarchyIterable<TNode, U>, AsyncHierarchyIterable<TNode, T>]>

- - Defined in fn/spanAsync.ts:52

  Creates a tuple whose first element is an [[Iterable]] containing the first span of elements that match the supplied predicate, and whose second element is an [[AsyncIterable]] containing the remaining elements.

  The first [[Iterable]] is eagerly evaluated, while the second [[AsyncIterable]] is lazily evaluated.

  category

    Scalar

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - predicate: function —

    The predicate used to match elements.

    - - (element: T, offset: number): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean | PromiseLike<boolean>

  #### Returns Promise<[HierarchyIterable<TNode, T>, AsyncHierarchyIterable<TNode, T>]>

- - Defined in fn/spanAsync.ts:65

  Creates a tuple whose first element is an [[Iterable]] containing the first span of elements that match the supplied predicate, and whose second element is an [[AsyncIterable]] containing the remaining elements.

  The first [[Iterable]] is eagerly evaluated, while the second [[AsyncIterable]] is lazily evaluated.

  category

    Scalar

  #### Type parameters

  - T
  - U: T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - predicate: function —

    The predicate used to match elements.

    - - (element: T, offset: number): boolean

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean

  #### Returns Promise<[Iterable<U>, AsyncIterable<T>]>

- - Defined in fn/spanAsync.ts:78

  Creates a tuple whose first element is an [[Iterable]] containing the first span of elements that match the supplied predicate, and whose second element is an [[AsyncIterable]] containing the remaining elements.

  The first [[Iterable]] is eagerly evaluated, while the second [[AsyncIterable]] is lazily evaluated.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - predicate: function —

    The predicate used to match elements.

    - - (element: T, offset: number): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean | PromiseLike<boolean>

  #### Returns Promise<[Iterable<T>, AsyncIterable<T>]>

### startsWith

- startsWith<T>(left: Queryable<T>, right: Queryable<T>, equaler?: EqualityComparison<T> | Equaler<T>): boolean
- startsWith<T, U>(left: Queryable<T>, right: Queryable<U>, equaler: function): boolean

- - Defined in fn/startsWith.ts:31

  Computes a scalar value indicating whether the elements of this Query start with the same sequence of elements in another Queryable.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - left: Queryable<T> —

    A Queryable object.

  - right: Queryable<T> —

    A Queryable object.

  - Optional equaler: EqualityComparison<T> | Equaler<T> —

    A callback used to compare the equality of two elements.

  #### Returns boolean

- - Defined in fn/startsWith.ts:41

  Computes a scalar value indicating whether the elements of this Query start with the same sequence of elements in another Queryable.

  category

    Scalar

  #### Type parameters

  - T
  - U

  #### Parameters

  - left: Queryable<T> —

    A Queryable object.

  - right: Queryable<U> —

    A Queryable object.

  - equaler: function —

    A callback used to compare the equality of two elements.

    - - (left: T, right: U): boolean

      - #### Parameters

        - left: T
        - right: U

        #### Returns boolean

### startsWithAsync

- startsWithAsync<T>(left: AsyncQueryable<T>, right: AsyncQueryable<T>, equaler?: EqualityComparison<T> | Equaler<T>): Promise<boolean>
- startsWithAsync<T, U>(left: AsyncQueryable<T>, right: AsyncQueryable<U>, equaler: function): Promise<boolean>

- - Defined in fn/startsWithAsync.ts:31

  Computes a scalar value indicating whether the elements of this Query start with the same sequence of elements in another Queryable.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: EqualityComparison<T> | Equaler<T> —

    A callback used to compare the equality of two elements.

  #### Returns Promise<boolean>

- - Defined in fn/startsWithAsync.ts:41

  Computes a scalar value indicating whether the elements of this Query start with the same sequence of elements in another Queryable.

  category

    Scalar

  #### Type parameters

  - T
  - U

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<U> —

    An AsyncQueryable object.

  - equaler: function —

    A callback used to compare the equality of two elements.

    - - (left: T, right: U): boolean

      - #### Parameters

        - left: T
        - right: U

        #### Returns boolean

  #### Returns Promise<boolean>

### sum

- sum(source: Queryable<number>): number
- sum<T>(source: Queryable<T>, elementSelector: function): number

- - Defined in fn/sum.ts:28

  Computes the sum for a series of numbers.

  category

    Scalar

  #### Parameters

  - source: Queryable<number> —

    A Queryable object.

  #### Returns number

- - Defined in fn/sum.ts:36

  Computes the sum for a series of numbers.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - elementSelector: function —

    A callback used to convert a value in `source` to a number.

    - - (element: T): number

      - #### Parameters

        - element: T

        #### Returns number

### sumAsync

- sumAsync(source: AsyncQueryable<number>): Promise<number>
- sumAsync<T>(source: AsyncQueryable<T>, elementSelector: function): Promise<number>

- - Defined in fn/sumAsync.ts:29

  Computes the sum for a series of numbers. NOTE: If any element is not a `number`, this overload will throw.

  category

    Scalar

  #### Parameters

  - source: AsyncQueryable<number> —

    An AsyncQueryable object.

  #### Returns Promise<number>

- - Defined in fn/sumAsync.ts:37

  Computes the sum for a series of numbers.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - elementSelector: function —

    A callback used to convert a value in `source` to a number.

    - - (element: T): number | PromiseLike<number>

      - #### Parameters

        - element: T

        #### Returns number | PromiseLike<number>

  #### Returns Promise<number>

### toArray

- toArray<T>(source: Queryable<T>): T[]
- toArray<T, V>(source: Queryable<T>, elementSelector: function): V[]

- - Defined in fn/toArray.ts:28

  Creates an Array for the elements of the Queryable.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  #### Returns T[]

- - Defined in fn/toArray.ts:36

  Creates an Array for the elements of the Queryable.

  category

    Scalar

  #### Type parameters

  - T
  - V

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V

      - #### Parameters

        - element: T

        #### Returns V

  #### Returns V[]

### toArrayAsync

- toArrayAsync<T>(source: AsyncQueryable<T>): Promise<T[]>
- toArrayAsync<T, V>(source: AsyncQueryable<T>, elementSelector: function): Promise<V[]>

- - Defined in fn/toArrayAsync.ts:28

  Creates an Array for the elements of the [[AsyncIterable]].

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  #### Returns Promise<T[]>

- - Defined in fn/toArrayAsync.ts:36

  Creates an Array for the elements of the [[AsyncIterable]].

  category

    Scalar

  #### Type parameters

  - T
  - V

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  #### Returns Promise<V[]>

### toLookup

- toLookup<T, K>(source: Queryable<T>, keySelector: function, keyEqualer?: Equaler<K>): Lookup<K, T>
- toLookup<T, K, V>(source: Queryable<T>, keySelector: function, elementSelector: function, keyEqualer?: Equaler<K>): Lookup<K, V>

- - Defined in fn/toLookup.ts:32

  Creates a Lookup for the elements of the Query.

  category

    Scalar

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Lookup<K, T>

- - Defined in fn/toLookup.ts:42

  Creates a Lookup for the elements of the Query.

  category

    Scalar

  #### Type parameters

  - T
  - K
  - V

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V

      - #### Parameters

        - element: T

        #### Returns V

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Lookup<K, V>

### toLookupAsync

- toLookupAsync<T, K>(source: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): Promise<Lookup<K, T>>
- toLookupAsync<T, K, V>(source: AsyncQueryable<T>, keySelector: function, elementSelector: function, keyEqualer?: Equaler<K>): Promise<Lookup<K, V>>

- - Defined in fn/toLookupAsync.ts:32

  Creates a Lookup for the elements of the source.

  category

    Scalar

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Promise<Lookup<K, T>>

- - Defined in fn/toLookupAsync.ts:42

  Creates a Lookup for the elements of the source.

  category

    Scalar

  #### Type parameters

  - T
  - K
  - V

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Promise<Lookup<K, V>>

### toMap

- toMap<T, K>(source: Queryable<T>, keySelector: function): Map<K, T>
- toMap<T, K>(source: Queryable<T>, keySelector: function, keyEqualer: Equaler<K>): HashMap<K, T>
- toMap<T, K, V>(source: Queryable<T>, keySelector: function, elementSelector: function): Map<K, V>
- toMap<T, K, V>(source: Queryable<T>, keySelector: function, elementSelector: function, keyEqualer: Equaler<K>): HashMap<K, V>

- - Defined in fn/toMap.ts:32

  Creates a Map for the elements of the Query.

  category

    Scalar

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  #### Returns Map<K, T>

- - Defined in fn/toMap.ts:41

  Creates a Map for the elements of the Query.

  category

    Scalar

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns HashMap<K, T>

- - Defined in fn/toMap.ts:50

  Creates a Map for the elements of the Query.

  category

    Scalar

  #### Type parameters

  - T
  - K
  - V

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V

      - #### Parameters

        - element: T

        #### Returns V

  #### Returns Map<K, V>

- - Defined in fn/toMap.ts:60

  Creates a Map for the elements of the Query.

  category

    Scalar

  #### Type parameters

  - T
  - K
  - V

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V

      - #### Parameters

        - element: T

        #### Returns V

  - keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns HashMap<K, V>

### toMapAsync

- toMapAsync<T, K>(source: AsyncQueryable<T>, keySelector: function): Promise<Map<K, T>>
- toMapAsync<T, K>(source: AsyncQueryable<T>, keySelector: function, keyEqualer: Equaler<K>): Promise<HashMap<K, T>>
- toMapAsync<T, K, V>(source: AsyncQueryable<T>, keySelector: function, elementSelector: function): Promise<Map<K, V>>
- toMapAsync<T, K, V>(source: AsyncQueryable<T>, keySelector: function, elementSelector: function, keyEqualer: Equaler<K>): Promise<HashMap<K, V>>

- - Defined in fn/toMapAsync.ts:32

  Creates a Map for the elements of the source.

  category

    Scalar

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  #### Returns Promise<Map<K, T>>

- - Defined in fn/toMapAsync.ts:41

  Creates a Map for the elements of the source.

  category

    Scalar

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Promise<HashMap<K, T>>

- - Defined in fn/toMapAsync.ts:50

  Creates a Map for the elements of the source.

  category

    Scalar

  #### Type parameters

  - T
  - K
  - V

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  #### Returns Promise<Map<K, V>>

- - Defined in fn/toMapAsync.ts:60

  Creates a Map for the elements of the source.

  category

    Scalar

  #### Type parameters

  - T
  - K
  - V

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  - keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Promise<HashMap<K, V>>

### toObject

- toObject<T>(source: Queryable<T>, prototype: object | null | undefined, keySelector: function): object
- toObject<T, V>(source: Queryable<T>, prototype: object | null | undefined, keySelector: function, elementSelector: function, descriptorSelector?: undefined | function): object

- - Defined in fn/toObject.ts:53

  Creates an Object for the elements of `source`. Properties are added via `Object.defineProperty`.

      // As a regular object
      const obj = toObject([["x", 1], ["y", 2]], undefined, a => a[0]);
      obj.x; // ["x", 1]
      obj.y; // ["y", 2]
      typeof obj.toString; // function

      // with a custom prototype
      const baseObject = { toString() { return `${this.x}:${this.y}` } };
      const obj = toObject([["x", 1], ["y", 2]], baseObject, a => a[0]);
      obj.x; // ["x", 1]
      obj.y; // ["y", 2]
      typeof obj.toString; // function
      obj.toString(); // "x",1:"y",2

      // with a null prototype
      const obj = toObject([["x", 1], ["y", 2]], null, a => a[0]);
      obj.x; // ["x", 1]
      obj.y; // ["y", 2]
      typeof obj.toString; // undefined

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - prototype: object | null | undefined —

    The prototype for the object. If `prototype` is `null`, an object with a `null` prototype is created. If `prototype` is `undefined`, the default `Object.prototype` is used.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): PropertyKey

      - #### Parameters

        - element: T

        #### Returns PropertyKey

  #### Returns object

- - Defined in fn/toObject.ts:87

  Creates an Object for the elements of `source`. Properties are added via `Object.defineProperty`.

      // As a regular object
      const obj = toObject([["x", 1], ["y", 2]], undefined, a => a[0], a => a[1]);
      obj.x; // 1
      obj.y; // 2
      typeof obj.toString; // function

      // with a custom prototype
      const baseObject = { toString() { return `${this.x}:${this.y}` } };
      const obj = toObject([["x", 1], ["y", 2]], baseObject, a => a[0], a => a[1]);
      obj.x; // 1
      obj.y; // 2
      typeof obj.toString; // function
      obj.toString(); // 1:2

      // with a null prototype
      const obj = toObject([["x", 1], ["y", 2]], null, a => a[0], a => a[1]);
      obj.x; // 1
      obj.y; // 2
      typeof obj.toString; // undefined

  category

    Scalar

  #### Type parameters

  - T
  - V

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - prototype: object | null | undefined —

    The prototype for the object. If `prototype` is `null`, an object with a `null` prototype is created. If `prototype` is `undefined`, the default `Object.prototype` is used.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): PropertyKey

      - #### Parameters

        - element: T

        #### Returns PropertyKey

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V

      - #### Parameters

        - element: T

        #### Returns V

  - Optional descriptorSelector: undefined | function —

    A callback that defines the `PropertyDescriptor` for each property.

  #### Returns object

### toObjectAsync

- toObjectAsync<T>(source: AsyncQueryable<T>, prototype: object | null | undefined, keySelector: function): Promise<object>
- toObjectAsync<T, V>(source: AsyncQueryable<T>, prototype: object | null | undefined, keySelector: function, elementSelector: function, descriptorSelector?: undefined | function): Promise<object>

- - Defined in fn/toObjectAsync.ts:53

  Creates an Object for the elements of `source`. Properties are added via `Object.defineProperty`.

      // As a regular object
      const obj = await toObjectAsync([Promise.resolve(["x", 1]), ["y", 2]], undefined, a => a[0]);
      obj.x; // ["x", 1]
      obj.y; // ["y", 2]
      typeof obj.toString; // function

      // with a custom prototype
      const baseObject = { toString() { return `${this.x}:${this.y}` } };
      const obj = await toObjectAsync([Promise.resolve(["x", 1]), ["y", 2]], baseObject, a => a[0]);
      obj.x; // ["x", 1]
      obj.y; // ["y", 2]
      typeof obj.toString; // function
      obj.toString(); // "x",1:"y",2

      // with a null prototype
      const obj = await toObjectAsync([Promise.resolve(["x", 1]), ["y", 2]], null, a => a[0]);
      obj.x; // ["x", 1]
      obj.y; // ["y", 2]
      typeof obj.toString; // undefined

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - prototype: object | null | undefined —

    The prototype for the object. If `prototype` is `null`, an object with a `null` prototype is created. If `prototype` is `undefined`, the default `Object.prototype` is used.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): PropertyKey

      - #### Parameters

        - element: T

        #### Returns PropertyKey

  #### Returns Promise<object>

- - Defined in fn/toObjectAsync.ts:87

  Creates an Object for the elements of `source`. Properties are added via `Object.defineProperty`.

      // As a regular object
      const obj = await toObjectAsync([Promise.resolve(["x", 1]), ["y", 2]], undefined, a => a[0], a => a[1]);
      obj.x; // 1
      obj.y; // 2
      typeof obj.toString; // function

      // with a custom prototype
      const baseObject = { toString() { return `${this.x}:${this.y}` } };
      const obj = await toObjectAsync([Promise.resolve(["x", 1]), ["y", 2]], baseObject, a => a[0], a => a[1]);
      obj.x; // 1
      obj.y; // 2
      typeof obj.toString; // function
      obj.toString(); // 1:2

      // with a null prototype
      const obj = await toObjectAsync([Promise.resolve(["x", 1]), ["y", 2]], null, a => a[0], a => a[1]);
      obj.x; // 1
      obj.y; // 2
      typeof obj.toString; // undefined

  category

    Scalar

  #### Type parameters

  - T
  - V

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - prototype: object | null | undefined —

    The prototype for the object. If `prototype` is `null`, an object with a `null` prototype is created. If `prototype` is `undefined`, the default `Object.prototype` is used.

  - keySelector: function —

    A callback used to select a key for each element.

    - - (element: T): PropertyKey

      - #### Parameters

        - element: T

        #### Returns PropertyKey

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  - Optional descriptorSelector: undefined | function —

    A callback that defines the `PropertyDescriptor` for each property.

  #### Returns Promise<object>

### toSet

- toSet<T>(source: Queryable<T>): Set<T>
- toSet<T>(source: Queryable<T>, equaler: Equaler<T>): HashSet<T>
- toSet<T, V>(source: Queryable<T>, elementSelector: function): Set<V>
- toSet<T, V>(source: Queryable<T>, elementSelector: function, equaler: Equaler<V>): HashSet<V>

- - Defined in fn/toSet.ts:31

  Creates a Set for the elements of the Query.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  #### Returns Set<T>

- - Defined in fn/toSet.ts:39

  Creates a Set for the elements of the Query.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns HashSet<T>

- - Defined in fn/toSet.ts:47

  Creates a Set for the elements of the Query.

  category

    Scalar

  #### Type parameters

  - T
  - V

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V

      - #### Parameters

        - element: T

        #### Returns V

  #### Returns Set<V>

- - Defined in fn/toSet.ts:56

  Creates a Set for the elements of the Query.

  category

    Scalar

  #### Type parameters

  - T
  - V

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V

      - #### Parameters

        - element: T

        #### Returns V

  - equaler: Equaler<V> —

    An [[Equaler]] object used to compare equality.

  #### Returns HashSet<V>

### toSetAsync

- toSetAsync<T>(source: AsyncQueryable<T>): Promise<Set<T>>
- toSetAsync<T>(source: AsyncQueryable<T>, equaler: Equaler<T>): Promise<HashSet<T>>
- toSetAsync<T, V>(source: AsyncQueryable<T>, elementSelector: function): Promise<Set<V>>
- toSetAsync<T, V>(source: AsyncQueryable<T>, elementSelector: function, equaler: Equaler<V>): Promise<HashSet<V>>

- - Defined in fn/toSetAsync.ts:31

  Creates a Set for the elements of the Query.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  #### Returns Promise<Set<T>>

- - Defined in fn/toSetAsync.ts:39

  Creates a Set for the elements of the Query.

  category

    Scalar

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns Promise<HashSet<T>>

- - Defined in fn/toSetAsync.ts:47

  Creates a Set for the elements of the Query.

  category

    Scalar

  #### Type parameters

  - T
  - V

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  #### Returns Promise<Set<V>>

- - Defined in fn/toSetAsync.ts:56

  Creates a Set for the elements of the Query.

  category

    Scalar

  #### Type parameters

  - T
  - V

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - elementSelector: function —

    A callback that selects a value for each element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  - equaler: Equaler<V> —

    An [[Equaler]] object used to compare equality.

  #### Returns Promise<HashSet<V>>

### unzip

- unzip<T>(source: Queryable<T>): object
- unzip<T, U>(source: Queryable<T>, partSelector: function): object

- - Defined in fn/unzip.ts:27

  Unzips a sequence of tuples into a tuple of sequences.

  category

    Scalar

  #### Type parameters

  - T: [any, Array]

  #### Parameters

  - source: Queryable<T> —

    A Queryable

  #### Returns object

- - Defined in fn/unzip.ts:34

  Unzips a sequence of tuples into a tuple of sequences.

  category

    Scalar

  #### Type parameters

  - T
  - U: [any, Array]

  #### Parameters

  - source: Queryable<T> —

    A Queryable

  - partSelector: function —

    A callback that converts a result into a tuple.

    - - (value: T): U

      - #### Parameters

        - value: T

        #### Returns U

  #### Returns object

### unzipAsync

- unzipAsync<T>(source: AsyncQueryable<T>): Promise<object>
- unzipAsync<T, U>(source: AsyncQueryable<T>, partSelector: function): Promise<object>

- - Defined in fn/unzipAsync.ts:27

  Unzips a sequence of tuples into a tuple of sequences.

  category

    Scalar

  #### Type parameters

  - T: [any, Array]

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable

  #### Returns Promise<object>

- - Defined in fn/unzipAsync.ts:34

  Unzips a sequence of tuples into a tuple of sequences.

  category

    Scalar

  #### Type parameters

  - T
  - U: [any, Array]

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable

  - partSelector: function —

    A callback that converts a result into a tuple.

    - - (value: T): U | PromiseLike<U>

      - #### Parameters

        - value: T

        #### Returns U | PromiseLike<U>

  #### Returns Promise<object>

## Functions (Subquery)

### append

- append<TNode, T>(source: HierarchyIterable<TNode, T>, value: T): HierarchyIterable<TNode, T>
- append<T>(source: Queryable<T>, value: T): Iterable<T>

- - Defined in fn/append.ts:29

  Creates a HierarchyIterable for the elements of `source` with the provided `value` appended to the end.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    The HierarchyIterable to append to.

  - value: T —

    The value to append.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/append.ts:38

  Creates an [[Iterable]] for the elements of `source` with the provided `value` appended to the end.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    The HierarchyIterable to append to.

  - value: T —

    The value to append.

  #### Returns Iterable<T>

### appendAsync

- appendAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, value: PromiseLike<T> | T): AsyncHierarchyIterable<TNode, T>
- appendAsync<T>(source: AsyncQueryable<T>, value: PromiseLike<T> | T): AsyncIterable<T>

- - Defined in fn/appendAsync.ts:29

  Creates an [[AsyncIterable]] for the elements of `source` with the provided `value` appended to the end.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    The HierarchyIterable or AsyncHierarchyIterable to append to.

  - value: PromiseLike<T> | T —

    The value to append.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/appendAsync.ts:38

  Creates an [[AsyncIterable]] for the elements of `source` with the provided `value` appended to the end.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    The HierarchyIterable or AsyncHierarchyIterable to append to.

  - value: PromiseLike<T> | T —

    The value to append.

  #### Returns AsyncIterable<T>

### concat

- concat<TNode, T>(left: HierarchyIterable<TNode, T>, right: Queryable<T>): HierarchyIterable<TNode, T>
- concat<TNode, T>(left: Queryable<T>, right: HierarchyIterable<TNode, T>): HierarchyIterable<TNode, T>
- concat<T>(left: Queryable<T>, right: Queryable<T>): Iterable<T>

- - Defined in fn/concat.ts:28

  Creates a HierarchyIterable that concatenates a HierarchyIterable and a Queryable.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: HierarchyIterable<TNode, T> —

    A HierarchyIterable value.

  - right: Queryable<T> —

    A Queryable object.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/concat.ts:36

  Creates a HierarchyIterable that concatenates a Queryable and a HierarchyIterable.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: Queryable<T> —

    A HierarchyIterable value.

  - right: HierarchyIterable<TNode, T> —

    A Queryable object.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/concat.ts:44

  Creates an [[Iterable]] that concatenates two Queryable objects.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - left: Queryable<T> —

    A HierarchyIterable value.

  - right: Queryable<T> —

    A Queryable object.

  #### Returns Iterable<T>

### concatAsync

- concatAsync<TNode, T>(left: PossiblyAsyncHierarchyIterable<TNode, T>, right: AsyncQueryable<T>): AsyncHierarchyIterable<TNode, T>
- concatAsync<TNode, T>(left: AsyncQueryable<T>, right: PossiblyAsyncHierarchyIterable<TNode, T>): AsyncHierarchyIterable<TNode, T>
- concatAsync<T>(left: AsyncQueryable<T>, right: AsyncQueryable<T>): AsyncIterable<T>

- - Defined in fn/concatAsync.ts:29

  Creates an AsyncHierarchyIterable that concatenates a HierarchyIterable or AsyncHierarchyIterable object with an AsyncQueryable object.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/concatAsync.ts:38

  Creates an AsyncHierarchyIterable that concatenates an AsyncQueryable object with a HierarchyIterable or AsyncHierarchyIterable object.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - right: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/concatAsync.ts:46

  Creates an [[AsyncIterable]] that concatenates two AsyncQueryable objects.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - left: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  #### Returns AsyncIterable<T>

### defaultIfEmpty

- defaultIfEmpty<TNode, T>(source: HierarchyIterable<TNode, T>, defaultValue: T): HierarchyIterable<TNode, T>
- defaultIfEmpty<T>(source: Queryable<T>, defaultValue: T): Iterable<T>

- - Defined in fn/defaultIfEmpty.ts:29

  Creates a HierarchyIterable that contains the provided default value if `source` contains no elements.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - defaultValue: T —

    The default value.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/defaultIfEmpty.ts:38

  Creates an [[Iterable]] that contains the provided default value if `source` contains no elements.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A HierarchyIterable object.

  - defaultValue: T —

    The default value.

  #### Returns Iterable<T>

### defaultIfEmptyAsync

- defaultIfEmptyAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, defaultValue: PromiseLike<T> | T): AsyncHierarchyIterable<TNode, T>
- defaultIfEmptyAsync<T>(source: AsyncQueryable<T>, defaultValue: PromiseLike<T> | T): AsyncIterable<T>

- - Defined in fn/defaultIfEmptyAsync.ts:29

  Creates an AsyncHierarchyIterable that contains the provided default value if `source` contains no elements.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - defaultValue: PromiseLike<T> | T —

    The default value.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/defaultIfEmptyAsync.ts:38

  Creates an [[AsyncIterable]] that contains the provided default value if `source` contains no elements.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - defaultValue: PromiseLike<T> | T —

    The default value.

  #### Returns AsyncIterable<T>

### distinct

- distinct<TNode, T>(source: HierarchyIterable<TNode, T>, equaler?: Equaler<T>): HierarchyIterable<TNode, T>
- distinct<T>(source: Queryable<T>, equaler?: Equaler<T>): Iterable<T>

- - Defined in fn/distinct.ts:31

  Creates a HierarchyIterable for the distinct elements of `source`.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare element equality.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/distinct.ts:39

  Creates an [[Iterable]] for the distinct elements of `source`.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A HierarchyIterable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare element equality.

  #### Returns Iterable<T>

### distinctAsync

- distinctAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, equaler?: Equaler<T>): AsyncHierarchyIterable<TNode, T>
- distinctAsync<T>(source: AsyncQueryable<T>, equaler?: Equaler<T>): AsyncIterable<T>

- - Defined in fn/distinctAsync.ts:31

  Creates an AsyncHierarchyIterable for the distinct elements of `source`.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare element equality.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/distinctAsync.ts:39

  Creates an [[AsyncIterable]] for the distinct elements of source.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare element equality.

  #### Returns AsyncIterable<T>

### distinctBy

- distinctBy<TNode, T, K>(source: HierarchyIterable<TNode, T>, keySelector: function, keyEqualer?: Equaler<K>): HierarchyIterable<TNode, T>
- distinctBy<T, K>(source: Queryable<T>, keySelector: function, keyEqualer?: Equaler<K>): Iterable<T>

- - Defined in fn/distinctBy.ts:32

  Creates a HierarchyIterable for the distinct elements of `source`.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - keySelector: function —

    A callback used to select the key to determine uniqueness.

    - - (value: T): K

      - #### Parameters

        - value: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/distinctBy.ts:41

  Creates an [[Iterable]] for the distinct elements of `source`.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: Queryable<T> —

    A HierarchyIterable object.

  - keySelector: function —

    A callback used to select the key to determine uniqueness.

    - - (value: T): K

      - #### Parameters

        - value: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Iterable<T>

### distinctByAsync

- distinctByAsync<TNode, T, K>(source: PossiblyAsyncHierarchyIterable<TNode, T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncHierarchyIterable<TNode, T>
- distinctByAsync<T, K>(source: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncIterable<T>

- - Defined in fn/distinctByAsync.ts:32

  Creates an AsyncHierarchyIterable for the distinct elements of `source`.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key to determine uniqueness.

    - - (value: T): K

      - #### Parameters

        - value: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/distinctByAsync.ts:41

  Creates an [[AsyncIterable]] for the distinct elements of source.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key to determine uniqueness.

    - - (value: T): K

      - #### Parameters

        - value: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncIterable<T>

### except

- except<TNode, T>(left: HierarchyIterable<TNode, T>, right: Queryable<T>, equaler?: Equaler<T>): HierarchyIterable<TNode, T>
- except<T>(left: Queryable<T>, right: Queryable<T>, equaler?: Equaler<T>): Iterable<T>

- - Defined in fn/except.ts:32

  Creates a HierarchyIterable for the set difference between a HierarchyIterable and a Queryable object.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - right: Queryable<T> —

    A Queryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/except.ts:41

  Creates an [[Iterable]] for the set difference between two Queryable objects.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - left: Queryable<T> —

    A HierarchyIterable object.

  - right: Queryable<T> —

    A Queryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns Iterable<T>

### exceptAsync

- exceptAsync<TNode, T>(left: PossiblyAsyncHierarchyIterable<TNode, T>, right: AsyncQueryable<T>, equaler?: Equaler<T>): AsyncHierarchyIterable<TNode, T>
- exceptAsync<T>(left: AsyncQueryable<T>, right: AsyncQueryable<T>, equaler?: Equaler<T>): AsyncIterable<T>

- - Defined in fn/exceptAsync.ts:32

  Creates an AsyncHierarchyIterable for the set difference between a HierarchyIterable or an AsyncHierarchyIterable and an AsyncQueryable object.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/exceptAsync.ts:41

  Creates an [[AsyncIterable]] for the set difference between two AsyncQueryable objects.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - left: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncIterable<T>

### exceptBy

- exceptBy<TNode, T, K>(left: HierarchyIterable<TNode, T>, right: Queryable<T>, keySelector: function, keyEqualer?: Equaler<K>): HierarchyIterable<TNode, T>
- exceptBy<T, K>(left: Queryable<T>, right: Queryable<T>, keySelector: function, keyEqualer?: Equaler<K>): Iterable<T>

- - Defined in fn/exceptBy.ts:32

  Creates a HierarchyIterable for the set difference between a HierarchyIterable and a Queryable object, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - left: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - right: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/exceptBy.ts:42

  Creates an [[Iterable]] for the set difference between two Queryable objects, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - left: Queryable<T> —

    A HierarchyIterable object.

  - right: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Iterable<T>

### exceptByAsync

- exceptByAsync<TNode, T, K>(left: PossiblyAsyncHierarchyIterable<TNode, T>, right: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncHierarchyIterable<TNode, T>
- exceptByAsync<T, K>(left: AsyncQueryable<T>, right: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncIterable<T>

- - Defined in fn/exceptByAsync.ts:32

  Creates an AsyncHierarchyIterable for the set difference between a HierarchyIterable or an AsyncHierarchyIterable and an AsyncQueryable object, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - left: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/exceptByAsync.ts:42

  Creates an [[AsyncIterable]] for the set difference between two AsyncQueryable objects, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - left: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncIterable<T>

### exclude

- exclude<TNode, T>(source: HierarchyIterable<TNode, T>, ...values: [T, Array]): HierarchyIterable<TNode, T>
- exclude<T>(source: Queryable<T>, ...values: [T, Array]): Iterable<T>

- - Defined in fn/exclude.ts:30

  Creates a HierarchyIterable with every instance of the specified value removed.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - Rest ...values: [T, Array] —

    The values to exclude.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/exclude.ts:38

  Creates an [[Iterable]] with every instance of the specified value removed.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A HierarchyIterable object.

  - Rest ...values: [T, Array] —

    The values to exclude.

  #### Returns Iterable<T>

### excludeAsync

- excludeAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, ...values: [T | PromiseLike<T>, Array]): AsyncHierarchyIterable<TNode, T>
- excludeAsync<T>(source: AsyncQueryable<T>, ...values: [T | PromiseLike<T>, Array]): AsyncIterable<T>

- - Defined in fn/excludeAsync.ts:30

  Creates an AsyncHierarchyIterable with every instance of the specified value removed.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - Rest ...values: [T | PromiseLike<T>, Array] —

    The values to exclude.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/excludeAsync.ts:38

  Creates an [[AsyncIterable]] with every instance of the specified value removed.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - Rest ...values: [T | PromiseLike<T>, Array] —

    The values to exclude.

  #### Returns AsyncIterable<T>

### expand

- expand<TNode, T, U>(source: HierarchyIterable<TNode, T>, projection: function): HierarchyIterable<TNode, U>
- expand<T>(source: Queryable<T>, projection: function): Iterable<T>

- - Defined in fn/expand.ts:29

  Creates a HierarchyIterable that iterates the results of recursively expanding the elements of `source`.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - U: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - projection: function —

    A callback used to recusively expand each element.

    - - (element: T): Queryable<U>

      - #### Parameters

        - element: T

        #### Returns Queryable<U>

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/expand.ts:38

  Creates an [[Iterable]] that iterates the results of recursively expanding the elements of the `source`.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A HierarchyIterable object.

  - projection: function —

    A callback used to recusively expand each element.

    - - (element: T): Queryable<T>

      - #### Parameters

        - element: T

        #### Returns Queryable<T>

  #### Returns Iterable<T>

### expandAsync

- expandAsync<TNode, T, U>(source: PossiblyAsyncHierarchyIterable<TNode, T>, projection: function): AsyncHierarchyIterable<TNode, U>
- expandAsync<T>(source: AsyncQueryable<T>, projection: function): AsyncIterable<T>

- - Defined in fn/expandAsync.ts:29

  Creates an AsyncHierarchyIterable that iterates the results of recursively expanding the elements of `source`.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - U: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - projection: function —

    A callback used to recusively expand each element.

    - - (element: T): AsyncQueryable<U>

      - #### Parameters

        - element: T

        #### Returns AsyncQueryable<U>

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/expandAsync.ts:38

  Creates an [[AsyncIterable]] that iterates the results of recursively expanding the elements of `source`.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - projection: function —

    A callback used to recusively expand each element.

    - - (element: T): AsyncQueryable<T>

      - #### Parameters

        - element: T

        #### Returns AsyncQueryable<T>

  #### Returns AsyncIterable<T>

### filter

- filter<TNode, T, U>(source: HierarchyIterable<TNode, T>, predicate: function): HierarchyIterable<TNode, U>
- filter<TNode, U>(source: HierarchyIterable<TNode>, predicate: function): HierarchyIterable<TNode, U>
- filter<TNode, T>(source: HierarchyIterable<TNode, T>, predicate: function): HierarchyIterable<TNode, T>
- filter<T, U>(source: Queryable<T>, predicate: function): Iterable<U>
- filter<T>(source: Queryable<T>, predicate: function): Iterable<T>

- - Defined in fn/filter.ts:30

  Creates a HierarchyIterable whose elements match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - U: T

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T, offset: number): boolean

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/filter.ts:38

  Creates a HierarchyIterable whose elements match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: HierarchyIterable<TNode> —

    A HierarchyIterable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: TNode, offset: number): boolean

      - #### Parameters

        - element: TNode
        - offset: number

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/filter.ts:46

  Creates a HierarchyIterable whose elements match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T, offset: number): boolean

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/filter.ts:54

  Creates an [[Iterable]] whose elements match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T
  - U: T

  #### Parameters

  - source: Queryable<T> —

    A HierarchyIterable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T, offset: number): boolean

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean

  #### Returns Iterable<U>

- - Defined in fn/filter.ts:62

  Creates an [[Iterable]] whose elements match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A HierarchyIterable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T, offset: number): boolean

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean

  #### Returns Iterable<T>

### filterAsync

- filterAsync<TNode, T, U>(source: PossiblyAsyncHierarchyIterable<TNode, T>, predicate: function): AsyncHierarchyIterable<TNode, U>
- filterAsync<TNode, U>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate: function): AsyncHierarchyIterable<TNode, U>
- filterAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, predicate: function): AsyncHierarchyIterable<TNode, T>
- filterAsync<T, U>(source: AsyncQueryable<T>, predicate: function): AsyncIterable<U>
- filterAsync<T>(source: AsyncQueryable<T>, predicate: function): AsyncIterable<T>

- - Defined in fn/filterAsync.ts:30

  Creates an AsyncHierarchyIterable whose elements match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - U: T

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T, offset: number): boolean

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/filterAsync.ts:38

  Creates an AsyncHierarchyIterable whose elements match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: TNode, offset: number): boolean

      - #### Parameters

        - element: TNode
        - offset: number

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/filterAsync.ts:46

  Creates an AsyncHierarchyIterable whose elements match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T, offset: number): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/filterAsync.ts:54

  Creates an [[AsyncIterable]] whose elements match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T
  - U: T

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T, offset: number): boolean

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean

  #### Returns AsyncIterable<U>

- - Defined in fn/filterAsync.ts:62

  Creates an [[AsyncIterable]] whose elements match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T, offset: number): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncIterable<T>

### filterBy

- filterBy<TNode, T, K>(source: HierarchyIterable<TNode, T>, keySelector: function, predicate: function): HierarchyIterable<TNode, T>
- filterBy<T, K>(source: Queryable<T>, keySelector: function, predicate: function): Iterable<T>

- - Defined in fn/filterBy.ts:29

  Creates a HierarchyIterable where the selected key for each element matches the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - predicate: function —

    A callback used to match each key.

    - - (key: K, offset: number): boolean

      - #### Parameters

        - key: K
        - offset: number

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/filterBy.ts:38

  Creates an [[Iterable]] where the selected key for each element matches the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: Queryable<T> —

    A HierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - predicate: function —

    A callback used to match each key.

    - - (key: K, offset: number): boolean

      - #### Parameters

        - key: K
        - offset: number

        #### Returns boolean

  #### Returns Iterable<T>

### filterByAsync

- filterByAsync<TNode, T, K>(source: PossiblyAsyncHierarchyIterable<TNode, T>, keySelector: function, predicate: function): AsyncHierarchyIterable<TNode, T>
- filterByAsync<T, K>(source: AsyncQueryable<T>, keySelector: function, predicate: function): AsyncIterable<T>

- - Defined in fn/filterByAsync.ts:29

  Creates an AsyncHierarchyIterable whose elements match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - predicate: function —

    A callback used to match each key.

    - - (key: K, offset: number): boolean | PromiseLike<boolean>

      - #### Parameters

        - key: K
        - offset: number

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/filterByAsync.ts:38

  Creates an [[AsyncIterable]] whose elements match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - predicate: function —

    A callback used to match each key.

    - - (key: K, offset: number): boolean | PromiseLike<boolean>

      - #### Parameters

        - key: K
        - offset: number

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncIterable<T>

### filterDefined

- filterDefined<TNode, T>(source: HierarchyIterable<TNode, T>): HierarchyIterable<TNode, NonNullable<T>>
- filterDefined<TNode, T, K>(source: HierarchyIterable<TNode, T>, keySelector: function): HierarchyIterable<TNode, T>
- filterDefined<T>(source: Queryable<T>): Iterable<NonNullable<T>>
- filterDefined<T, K>(source: Queryable<T>, keySelector: function): Iterable<T>

- - Defined in fn/filterDefined.ts:29

  Creates a HierarchyIterable whose elements are neither `null` nor `undefined`.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  #### Returns HierarchyIterable<TNode, NonNullable<T>>

- - Defined in fn/filterDefined.ts:37

  Creates a HierarchyIterable where the selected key for each element is neither `null` nor `undefined`.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (value: T): K

      - #### Parameters

        - value: T

        #### Returns K

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/filterDefined.ts:44

  Creates an [[Iterable]] whose elements are neither `null` nor `undefined`.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A HierarchyIterable object.

  #### Returns Iterable<NonNullable<T>>

- - Defined in fn/filterDefined.ts:52

  Creates an [[Iterable]] where the selected key for each element is neither `null` nor `undefined`.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: Queryable<T> —

    A HierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (value: T): K

      - #### Parameters

        - value: T

        #### Returns K

  #### Returns Iterable<T>

### filterDefinedAsync

- filterDefinedAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>): AsyncHierarchyIterable<TNode, NonNullable<T>>
- filterDefinedAsync<TNode, T, K>(source: PossiblyAsyncHierarchyIterable<TNode, T>, keySelector: function): AsyncHierarchyIterable<TNode, T>
- filterDefinedAsync<T>(source: AsyncQueryable<T>): AsyncIterable<NonNullable<T>>
- filterDefinedAsync<T, K>(source: AsyncQueryable<T>, keySelector: function): AsyncIterable<T>

- - Defined in fn/filterDefinedAsync.ts:29

  Creates an AsyncHierarchyIterable whose elements are neither `null` nor `undefined`.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  #### Returns AsyncHierarchyIterable<TNode, NonNullable<T>>

- - Defined in fn/filterDefinedAsync.ts:37

  Creates an AsyncHierarchyIterable where the selected key for each element is neither `null` nor `undefined`.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (value: T): K

      - #### Parameters

        - value: T

        #### Returns K

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/filterDefinedAsync.ts:44

  Creates an [[AsyncIterable]] whose elements are neither `null` nor `undefined`.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  #### Returns AsyncIterable<NonNullable<T>>

- - Defined in fn/filterDefinedAsync.ts:52

  Creates an [[AsyncIterable]] where the selected key for each element is neither `null` nor `undefined`.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (value: T): K

      - #### Parameters

        - value: T

        #### Returns K

  #### Returns AsyncIterable<T>

### flatMap

- flatMap<T, U>(source: Queryable<T>, projection: function): Iterable<U>
- flatMap<T, U, R>(source: Queryable<T>, projection: function, resultSelector: function): Iterable<R>

- - Defined in fn/flatMap.ts:28

  Creates an [[Iterable]] that iterates the results of applying a callback to each element of `source`.

  category

    Subquery

  #### Type parameters

  - T
  - U

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - projection: function —

    A callback used to map each element into an iterable.

    - - (element: T): Queryable<U>

      - #### Parameters

        - element: T

        #### Returns Queryable<U>

  #### Returns Iterable<U>

- - Defined in fn/flatMap.ts:36

  Creates an [[Iterable]] that iterates the results of applying a callback to each element of `source`.

  category

    Subquery

  #### Type parameters

  - T
  - U
  - R

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - projection: function —

    A callback used to map each element into an iterable.

    - - (element: T): Queryable<U>

      - #### Parameters

        - element: T

        #### Returns Queryable<U>

  - resultSelector: function
    - - (element: T, innerElement: U): R

      - #### Parameters

        - element: T
        - innerElement: U

        #### Returns R

  #### Returns Iterable<R>

### flatMapAsync

- flatMapAsync<T, U>(source: AsyncQueryable<T>, projection: function): AsyncIterable<U>
- flatMapAsync<T, U, R>(source: AsyncQueryable<T>, projection: function, resultSelector: function): AsyncIterable<R>

- - Defined in fn/flatMapAsync.ts:28

  Creates an [[AsyncIterable]] that iterates the results of applying a callback to each element of `source`.

  category

    Subquery

  #### Type parameters

  - T
  - U

  #### Parameters

  - source: AsyncQueryable<T> —

    A Queryable object.

  - projection: function —

    A callback used to map each element into an iterable.

    - - (element: T): AsyncQueryable<U>

      - #### Parameters

        - element: T

        #### Returns AsyncQueryable<U>

  #### Returns AsyncIterable<U>

- - Defined in fn/flatMapAsync.ts:36

  Creates an [[AsyncIterable]] that iterates the results of applying a callback to each element of `source`.

  category

    Subquery

  #### Type parameters

  - T
  - U
  - R

  #### Parameters

  - source: AsyncQueryable<T> —

    A Queryable object.

  - projection: function —

    A callback used to map each element into an iterable.

    - - (element: T): AsyncQueryable<U>

      - #### Parameters

        - element: T

        #### Returns AsyncQueryable<U>

  - resultSelector: function
    - - (element: T, innerElement: U): R | PromiseLike<R>

      - #### Parameters

        - element: T
        - innerElement: U

        #### Returns R | PromiseLike<R>

  #### Returns AsyncIterable<R>

### groupBy

- groupBy<TNode, T, K>(source: HierarchyIterable<TNode, T>, keySelector: function, keyEqualer?: Equaler<K>): Iterable<HierarchyGrouping<K, TNode, T>>
- groupBy<T, K>(source: Queryable<T>, keySelector: function, keyEqualer?: Equaler<K>): Iterable<Grouping<K, T>>
- groupBy<T, K, V>(source: Queryable<T>, keySelector: function, elementSelector: function, keyEqualer?: Equaler<K>): Iterable<Grouping<K, V>>
- groupBy<T, K, V, R>(source: Queryable<T>, keySelector: function, elementSelector: function, resultSelector: function, keyEqualer?: Equaler<K>): Iterable<R>

- - Defined in fn/groupBy.ts:31

  Groups each element of a HierarchyIterable by its key.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Iterable<HierarchyGrouping<K, TNode, T>>

- - Defined in fn/groupBy.ts:40

  Groups each element of a Queryable by its key.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: Queryable<T> —

    A HierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Iterable<Grouping<K, T>>

- - Defined in fn/groupBy.ts:50

  Groups each element of a Queryable by its key.

  category

    Subquery

  #### Type parameters

  - T
  - K
  - V

  #### Parameters

  - source: Queryable<T> —

    A HierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback used to select a value for an element.

    - - (element: T): V

      - #### Parameters

        - element: T

        #### Returns V

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Iterable<Grouping<K, V>>

- - Defined in fn/groupBy.ts:61

  Groups each element of a Queryable by its key.

  category

    Subquery

  #### Type parameters

  - T
  - K
  - V
  - R

  #### Parameters

  - source: Queryable<T> —

    A HierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback used to select a value for an element.

    - - (element: T): V

      - #### Parameters

        - element: T

        #### Returns V

  - resultSelector: function —

    A callback used to select a result from a group.

    - - (key: K, elements: Iterable<V>): R

      - #### Parameters

        - key: K
        - elements: Iterable<V>

        #### Returns R

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Iterable<R>

### groupByAsync

- groupByAsync<T, K>(source: PossiblyAsyncHierarchyIterable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncIterable<HierarchyGrouping<K, T>>
- groupByAsync<T, K>(source: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncIterable<Grouping<K, T>>
- groupByAsync<T, K, V>(source: AsyncQueryable<T>, keySelector: function, elementSelector: function, keyEqualer?: Equaler<K>): AsyncIterable<Grouping<K, V>>
- groupByAsync<T, K, V, R>(source: AsyncQueryable<T>, keySelector: function, elementSelector: function, resultSelector: function, keyEqualer?: Equaler<K>): AsyncIterable<R>

- - Defined in fn/groupByAsync.ts:31

  Groups each element of a HierarchyIterable or AsyncHierarchyIterable by its key.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncIterable<HierarchyGrouping<K, T>>

- - Defined in fn/groupByAsync.ts:40

  Groups each element of an AsyncQueryable by its key.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncIterable<Grouping<K, T>>

- - Defined in fn/groupByAsync.ts:50

  Groups each element of an AsyncQueryable by its key.

  category

    Subquery

  #### Type parameters

  - T
  - K
  - V

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback used to select a value for an element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncIterable<Grouping<K, V>>

- - Defined in fn/groupByAsync.ts:61

  Groups each element of an AsyncQueryable by its key.

  category

    Subquery

  #### Type parameters

  - T
  - K
  - V
  - R

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback used to select a value for an element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  - resultSelector: function —

    A callback used to select a result from a group.

    - - (key: K, elements: Iterable<V>): PromiseLike<R> | R

      - #### Parameters

        - key: K
        - elements: Iterable<V>

        #### Returns PromiseLike<R> | R

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncIterable<R>

### intersect

- intersect<TNode, T>(left: HierarchyIterable<TNode, T>, right: Queryable<T>, equaler?: Equaler<T>): HierarchyIterable<TNode, T>
- intersect<TNode, T>(left: Queryable<T>, right: HierarchyIterable<TNode, T>, equaler?: Equaler<T>): HierarchyIterable<TNode, T>
- intersect<T>(left: Queryable<T>, right: Queryable<T>, equaler?: Equaler<T>): Iterable<T>

- - Defined in fn/intersect.ts:32

  Creates a HierarchyIterable for the set intersection of a HierarchyIterable object and a Queryable object.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - right: Queryable<T> —

    A Queryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/intersect.ts:41

  Creates a HierarchyIterable for the set intersection of a Queryable object and a HierarchyIterable object.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: Queryable<T> —

    A HierarchyIterable object.

  - right: HierarchyIterable<TNode, T> —

    A Queryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/intersect.ts:50

  Creates an [[Iterable]] for the set intersection of two Queryable objects.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - left: Queryable<T> —

    A HierarchyIterable object.

  - right: Queryable<T> —

    A Queryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns Iterable<T>

### intersectAsync

- intersectAsync<TNode, T>(left: PossiblyAsyncHierarchyIterable<TNode, T>, right: AsyncQueryable<T>, equaler?: Equaler<T>): AsyncHierarchyIterable<TNode, T>
- intersectAsync<TNode, T>(left: AsyncQueryable<T>, right: PossiblyAsyncHierarchyIterable<TNode, T>, equaler?: Equaler<T>): AsyncHierarchyIterable<TNode, T>
- intersectAsync<T>(left: AsyncQueryable<T>, right: AsyncQueryable<T>, equaler?: Equaler<T>): AsyncIterable<T>

- - Defined in fn/intersectAsync.ts:32

  Creates a HierarchyIterable for the set intersection of a HierarchyIterable or AsyncHierarchyIterable object and an AsyncQueryable object.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/intersectAsync.ts:41

  Creates a HierarchyIterable for the set intersection of an AsyncQueryable object and a HierarchyIterable or AsyncHierarchyIterable object.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - right: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/intersectAsync.ts:50

  Creates an [[AsyncIterable]] for the set intersection of two AsyncQueryable objects.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - left: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncIterable<T>

### intersectBy

- intersectBy<TNode, T, K>(left: HierarchyIterable<TNode, T>, right: Queryable<T>, keySelector: function, keyEqualer?: Equaler<K>): HierarchyIterable<TNode, T>
- intersectBy<TNode, T, K>(left: Queryable<T>, right: HierarchyIterable<TNode, T>, keySelector: function, keyEqualer?: Equaler<K>): HierarchyIterable<TNode, T>
- intersectBy<T, K>(left: Queryable<T>, right: Queryable<T>, keySelector: function, keyEqualer?: Equaler<K>): Iterable<T>

- - Defined in fn/intersectBy.ts:32

  Creates a HierarchyIterable for the set intersection of a HierarchyIterable object and a Queryable object, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - left: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - right: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/intersectBy.ts:42

  Creates a HierarchyIterable for the set intersection of a Queryable object and a HierarchyIterable object, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - left: Queryable<T> —

    A HierarchyIterable object.

  - right: HierarchyIterable<TNode, T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/intersectBy.ts:52

  Creates an [[Iterable]] for the set intersection of two Queryable objects, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - left: Queryable<T> —

    A HierarchyIterable object.

  - right: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Iterable<T>

### intersectByAsync

- intersectByAsync<TNode, T, K>(left: PossiblyAsyncHierarchyIterable<TNode, T>, right: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncHierarchyIterable<TNode, T>
- intersectByAsync<TNode, T, K>(left: AsyncQueryable<T>, right: PossiblyAsyncHierarchyIterable<TNode, T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncHierarchyIterable<TNode, T>
- intersectByAsync<T, K>(left: AsyncQueryable<T>, right: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncIterable<T>

- - Defined in fn/intersectByAsync.ts:32

  Creates a HierarchyIterable for the set intersection of a HierarchyIterable or AsyncHierarchyIterable object and an AsyncQueryable object, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - left: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/intersectByAsync.ts:42

  Creates a HierarchyIterable for the set intersection of an AsyncQueryable object and a HierarchyIterable or AsyncHierarchyIterable object, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - left: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - right: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/intersectByAsync.ts:52

  Creates an [[AsyncIterable]] for the set intersection of two AsyncQueryable objects, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - left: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncIterable<T>

### map

- map<T, U>(source: Queryable<T>, selector: function): Iterable<U>

- - Defined in fn/map.ts:28

  Creates an [[Iterable]] by applying a callback to each element of a Queryable.

  category

    Subquery

  #### Type parameters

  - T
  - U

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - selector: function —

    A callback used to map each element.

    - - (element: T, offset: number): U

      - #### Parameters

        - element: T
        - offset: number

        #### Returns U

  #### Returns Iterable<U>

### mapAsync

- mapAsync<T, U>(source: AsyncQueryable<T>, selector: function): AsyncIterable<U>

- - Defined in fn/mapAsync.ts:28

  Creates an [[AsyncIterable]] by applying a callback to each element of an AsyncQueryable.

  category

    Subquery

  #### Type parameters

  - T
  - U

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - selector: function —

    A callback used to map each element.

    - - (element: T, offset: number): U | PromiseLike<U>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns U | PromiseLike<U>

  #### Returns AsyncIterable<U>

### pageBy

- pageBy<TNode, T>(source: HierarchyIterable<TNode, T>, pageSize: number): Iterable<HierarchyPage<TNode, T>>
- pageBy<T>(source: Queryable<T>, pageSize: number): Iterable<Page<T>>

- - Defined in fn/pageBy.ts:30

  Creates a HierarchyIterable that splits a Queryable into one or more pages. While advancing from page to page is evaluated lazily, the elements of the page are evaluated eagerly.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - pageSize: number —

    The number of elements per page.

  #### Returns Iterable<HierarchyPage<TNode, T>>

- - Defined in fn/pageBy.ts:40

  Creates an [[Iterable]] that splits a Queryable into one or more pages. While advancing from page to page is evaluated lazily, the elements of the page are evaluated eagerly.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A HierarchyIterable object.

  - pageSize: number —

    The number of elements per page.

  #### Returns Iterable<Page<T>>

### pageByAsync

- pageByAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, pageSize: number): AsyncIterable<HierarchyPage<TNode, T>>
- pageByAsync<T>(source: AsyncQueryable<T>, pageSize: number): AsyncIterable<Page<T>>

- - Defined in fn/pageByAsync.ts:30

  Creates an AsyncHierarchyIterable that splits a HierarchyIterable or AsyncHierarchyIterable into one or more pages. While advancing from page to page is evaluated lazily, the elements of the page are evaluated eagerly.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - pageSize: number —

    The number of elements per page.

  #### Returns AsyncIterable<HierarchyPage<TNode, T>>

- - Defined in fn/pageByAsync.ts:40

  Creates an [[AsyncIterable]] that splits an AsyncQueryable into one or more pages. While advancing from page to page is evaluated lazily, the elements of the page are evaluated eagerly.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - pageSize: number —

    The number of elements per page.

  #### Returns AsyncIterable<Page<T>>

### patch

- patch<TNode, T>(source: HierarchyIterable<TNode, T>, start: number, skipCount?: undefined | number, range?: Queryable<T>): HierarchyIterable<TNode, T>
- patch<T>(source: Queryable<T>, start: number, skipCount?: undefined | number, range?: Queryable<T>): Iterable<T>

- - Defined in fn/patch.ts:31

  Creates a HierarchyIterable for the elements of `source` with the provided range patched into the results.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    The HierarchyIterable to patch.

  - start: number —

    The offset at which to patch the range.

  - Optional skipCount: undefined | number —

    The number of elements to skip from start.

  - Optional range: Queryable<T> —

    The range to patch into the result.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/patch.ts:42

  Creates an [[Iterable]] for the elements of `source` with the provided range patched into the results.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    The HierarchyIterable to patch.

  - start: number —

    The offset at which to patch the range.

  - Optional skipCount: undefined | number —

    The number of elements to skip from start.

  - Optional range: Queryable<T> —

    The range to patch into the result.

  #### Returns Iterable<T>

### patchAsync

- patchAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, start: number, skipCount?: undefined | number, range?: AsyncQueryable<T>): AsyncHierarchyIterable<TNode, T>
- patchAsync<T>(source: AsyncQueryable<T>, start: number, skipCount?: undefined | number, range?: AsyncQueryable<T>): AsyncIterable<T>

- - Defined in fn/patchAsync.ts:31

  Creates an AsyncHierarchyIterable for the elements of the source with the provided range patched into the results.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable to patch.

  - start: number —

    The offset at which to patch the range.

  - Optional skipCount: undefined | number —

    The number of elements to skip from start.

  - Optional range: AsyncQueryable<T> —

    The range to patch into the result.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/patchAsync.ts:42

  Creates an [[AsyncIterable]] for the elements of the source with the provided range patched into the results.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable to patch.

  - start: number —

    The offset at which to patch the range.

  - Optional skipCount: undefined | number —

    The number of elements to skip from start.

  - Optional range: AsyncQueryable<T> —

    The range to patch into the result.

  #### Returns AsyncIterable<T>

### prepend

- prepend<TNode, T>(source: HierarchyIterable<TNode, T>, value: T): HierarchyIterable<TNode, T>
- prepend<T>(source: Queryable<T>, value: T): Iterable<T>

- - Defined in fn/prepend.ts:27

  Creates a subquery for the elements of the source with the provided value prepended to the beginning.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T>
  - value: T —

    The value to prepend.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/prepend.ts:34

  Creates a subquery for the elements of the source with the provided value prepended to the beginning.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T>
  - value: T —

    The value to prepend.

  #### Returns Iterable<T>

### prependAsync

- prependAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, value: T): AsyncHierarchyIterable<TNode, T>
- prependAsync<T>(source: AsyncQueryable<T>, value: PromiseLike<T> | T): AsyncIterable<T>

- - Defined in fn/prependAsync.ts:29

  Creates an [[AsyncIterable]] for the elements of `source` with the provided `value` prepended to the beginning.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable value.

  - value: T —

    The value to prepend.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/prependAsync.ts:38

  Creates an [[AsyncIterable]] for the elements of `source` with the provided `value` prepended to the beginning.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable value.

  - value: PromiseLike<T> | T —

    The value to prepend.

  #### Returns AsyncIterable<T>

### reverse

- reverse<TNode, T>(source: HierarchyIterable<TNode, T>): HierarchyIterable<TNode, T>
- reverse<T>(source: Queryable<T>): Iterable<T>

- - Defined in fn/reverse.ts:26

  Creates a subquery whose elements are in the reverse order.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T>

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/reverse.ts:31

  Creates a subquery whose elements are in the reverse order.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T>

  #### Returns Iterable<T>

### reverseAsync

- reverseAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>): AsyncHierarchyIterable<TNode, T>
- reverseAsync<T>(source: AsyncQueryable<T>): AsyncIterable<T>

- - Defined in fn/reverseAsync.ts:26

  Creates a subquery whose elements are in the reverse order.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T>

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/reverseAsync.ts:31

  Creates a subquery whose elements are in the reverse order.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T>

  #### Returns AsyncIterable<T>

### scan

- scan<T>(source: Queryable<T>, accumulator: function): Iterable<T>
- scan<T, U>(source: Queryable<T>, accumulator: function, seed: U): Iterable<U>

- - Defined in fn/scan.ts:28

  Creates a subquery containing the cumulative results of applying the provided callback to each element.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - accumulator: function —

    The callback used to compute each result.

    - - (current: T, element: T, offset: number): T

      - #### Parameters

        - current: T
        - element: T
        - offset: number

        #### Returns T

  #### Returns Iterable<T>

- - Defined in fn/scan.ts:37

  Creates a subquery containing the cumulative results of applying the provided callback to each element.

  category

    Subquery

  #### Type parameters

  - T
  - U

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - accumulator: function —

    The callback used to compute each result.

    - - (current: U, element: T, offset: number): U

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U

  - seed: U —

    An optional seed value.

  #### Returns Iterable<U>

### scanAsync

- scanAsync<T>(source: AsyncQueryable<T>, accumulator: function): AsyncIterable<T>
- scanAsync<T, U>(source: AsyncQueryable<T>, accumulator: function, seed: U): AsyncIterable<U>

- - Defined in fn/scanAsync.ts:28

  Creates a subquery containing the cumulative results of applying the provided callback to each element.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - accumulator: function —

    The callback used to compute each result.

    - - (current: T, element: T, offset: number): T | PromiseLike<T>

      - #### Parameters

        - current: T
        - element: T
        - offset: number

        #### Returns T | PromiseLike<T>

  #### Returns AsyncIterable<T>

- - Defined in fn/scanAsync.ts:37

  Creates a subquery containing the cumulative results of applying the provided callback to each element.

  category

    Subquery

  #### Type parameters

  - T
  - U

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - accumulator: function —

    The callback used to compute each result.

    - - (current: U, element: T, offset: number): U | PromiseLike<U>

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U | PromiseLike<U>

  - seed: U —

    An optional seed value.

  #### Returns AsyncIterable<U>

### scanRight

- scanRight<T>(source: Queryable<T>, accumulator: function): Iterable<T>
- scanRight<T, U>(source: Queryable<T>, accumulator: function, seed: U): Iterable<U>

- - Defined in fn/scanRight.ts:30

  Creates a subquery containing the cumulative results of applying the provided callback to each element in reverse.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - accumulator: function —

    The callback used to compute each result.

    - - (current: T, element: T, offset: number): T

      - #### Parameters

        - current: T
        - element: T
        - offset: number

        #### Returns T

  #### Returns Iterable<T>

- - Defined in fn/scanRight.ts:39

  Creates a subquery containing the cumulative results of applying the provided callback to each element in reverse.

  category

    Subquery

  #### Type parameters

  - T
  - U

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - accumulator: function —

    The callback used to compute each result.

    - - (current: U, element: T, offset: number): U

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U

  - seed: U —

    An optional seed value.

  #### Returns Iterable<U>

### scanRightAsync

- scanRightAsync<T>(source: AsyncQueryable<T>, accumulator: function): AsyncIterable<T>
- scanRightAsync<T, U>(source: AsyncQueryable<T>, accumulator: function, seed: U): AsyncIterable<U>

- - Defined in fn/scanRightAsync.ts:29

  Creates a subquery containing the cumulative results of applying the provided callback to each element in reverse.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - accumulator: function —

    The callback used to compute each result.

    - - (current: T, element: T, offset: number): T | PromiseLike<T>

      - #### Parameters

        - current: T
        - element: T
        - offset: number

        #### Returns T | PromiseLike<T>

  #### Returns AsyncIterable<T>

- - Defined in fn/scanRightAsync.ts:38

  Creates a subquery containing the cumulative results of applying the provided callback to each element in reverse.

  category

    Subquery

  #### Type parameters

  - T
  - U

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - accumulator: function —

    The callback used to compute each result.

    - - (current: U, element: T, offset: number): U | PromiseLike<U>

      - #### Parameters

        - current: U
        - element: T
        - offset: number

        #### Returns U | PromiseLike<U>

  - seed: U —

    An optional seed value.

  #### Returns AsyncIterable<U>

### skip

- skip<TNode, T>(source: HierarchyIterable<TNode, T>, count: number): HierarchyIterable<TNode, T>
- skip<T>(source: Queryable<T>, count: number): Iterable<T>

- - Defined in fn/skip.ts:29

  Creates a subquery containing all elements except the first elements up to the supplied count.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A Queryable object.

  - count: number —

    The number of elements to skip.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/skip.ts:38

  Creates a subquery containing all elements except the first elements up to the supplied count.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - count: number —

    The number of elements to skip.

  #### Returns Iterable<T>

### skipAsync

- skipAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, count: number): AsyncHierarchyIterable<TNode, T>
- skipAsync<T>(source: AsyncQueryable<T>, count: number): AsyncIterable<T>

- - Defined in fn/skipAsync.ts:29

  Creates a subquery containing all elements except the first elements up to the supplied count.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - count: number —

    The number of elements to skip.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/skipAsync.ts:38

  Creates a subquery containing all elements except the first elements up to the supplied count.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - count: number —

    The number of elements to skip.

  #### Returns AsyncIterable<T>

### skipRight

- skipRight<TNode, T>(source: HierarchyIterable<TNode, T>, count: number): HierarchyIterable<TNode, T>
- skipRight<T>(source: Queryable<T>, count: number): Iterable<T>

- - Defined in fn/skipRight.ts:29

  Creates a subquery containing all elements except the first elements up to the supplied count.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A Queryable object.

  - count: number —

    The number of elements to skip.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/skipRight.ts:38

  Creates a subquery containing all elements except the first elements up to the supplied count.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - count: number —

    The number of elements to skip.

  #### Returns Iterable<T>

### skipRightAsync

- skipRightAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, count: number): AsyncHierarchyIterable<TNode, T>
- skipRightAsync<T>(source: AsyncQueryable<T>, count: number): AsyncIterable<T>

- - Defined in fn/skipRightAsync.ts:29

  Creates a subquery containing all elements except the first elements up to the supplied count.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - count: number —

    The number of elements to skip.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/skipRightAsync.ts:38

  Creates a subquery containing all elements except the first elements up to the supplied count.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - count: number —

    The number of elements to skip.

  #### Returns AsyncIterable<T>

### skipUntil

- skipUntil<TNode, T>(source: HierarchyIterable<TNode, T>, predicate: function): HierarchyIterable<TNode, T>
- skipUntil<T>(source: Queryable<T>, predicate: function): Iterable<T>

- - Defined in fn/skipUntil.ts:29

  Creates a subquery containing all elements except the first elements that do not match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A Queryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/skipUntil.ts:38

  Creates a subquery containing all elements except the first elements that do not match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns Iterable<T>

### skipUntilAsync

- skipUntilAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, predicate: function): AsyncHierarchyIterable<TNode, T>
- skipUntilAsync<T>(source: AsyncQueryable<T>, predicate: function): AsyncIterable<T>

- - Defined in fn/skipUntilAsync.ts:29

  Creates a subquery containing all elements except the first elements that do not match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/skipUntilAsync.ts:38

  Creates a subquery containing all elements except the first elements that do not match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncIterable<T>

### skipWhile

- skipWhile<TNode, T>(source: HierarchyIterable<TNode, T>, predicate: function): HierarchyIterable<TNode, T>
- skipWhile<T>(source: Queryable<T>, predicate: function): Iterable<T>

- - Defined in fn/skipWhile.ts:29

  Creates a subquery containing all elements except the first elements that match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A Queryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/skipWhile.ts:38

  Creates a subquery containing all elements except the first elements that match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns Iterable<T>

### skipWhileAsync

- skipWhileAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, predicate: function): AsyncHierarchyIterable<TNode, T>
- skipWhileAsync<T>(source: AsyncQueryable<T>, predicate: function): AsyncIterable<T>

- - Defined in fn/skipWhileAsync.ts:29

  Creates a subquery containing all elements except the first elements that match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/skipWhileAsync.ts:38

  Creates a subquery containing all elements except the first elements that match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncIterable<T>

### spanMap

- spanMap<TNode, T, K>(source: HierarchyIterable<TNode, T>, keySelector: function): Iterable<HierarchyGrouping<K, TNode, T>>
- spanMap<T, K>(source: Queryable<T>, keySelector: function): Iterable<Grouping<K, T>>
- spanMap<T, K, V>(source: Queryable<T>, keySelector: function, elementSelector: function): Iterable<Grouping<K, V>>
- spanMap<T, K, V, R>(source: Queryable<T>, keySelector: function, elementSelector: function, spanSelector: function): Iterable<R>

- - Defined in fn/spanMap.ts:29

  Creates a subquery whose elements are the contiguous ranges of elements that share the same key.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  #### Returns Iterable<HierarchyGrouping<K, TNode, T>>

- - Defined in fn/spanMap.ts:37

  Creates a subquery whose elements are the contiguous ranges of elements that share the same key.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  #### Returns Iterable<Grouping<K, T>>

- - Defined in fn/spanMap.ts:46

  Creates a subquery whose values are computed from each element of the contiguous ranges of elements that share the same key.

  category

    Subquery

  #### Type parameters

  - T
  - K
  - V

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback used to select a value for an element.

    - - (element: T): V

      - #### Parameters

        - element: T

        #### Returns V

  #### Returns Iterable<Grouping<K, V>>

- - Defined in fn/spanMap.ts:56

  Creates a subquery whose values are computed from the contiguous ranges of elements that share the same key.

  category

    Subquery

  #### Type parameters

  - T
  - K
  - V
  - R

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback used to select a value for an element.

    - - (element: T): V

      - #### Parameters

        - element: T

        #### Returns V

  - spanSelector: function —

    A callback used to select a result from a contiguous range.

    - - (key: K, elements: Iterable<V>): R

      - #### Parameters

        - key: K
        - elements: Iterable<V>

        #### Returns R

  #### Returns Iterable<R>

### spanMapAsync

- spanMapAsync<TNode, T, K>(source: PossiblyAsyncHierarchyIterable<TNode, T>, keySelector: function): AsyncIterable<HierarchyGrouping<K, TNode, T>>
- spanMapAsync<T, K>(source: AsyncQueryable<T>, keySelector: function): AsyncIterable<Grouping<K, T>>
- spanMapAsync<T, K, V>(source: AsyncQueryable<T>, keySelector: function, elementSelector: function): AsyncIterable<Grouping<K, V>>
- spanMapAsync<T, K, V, R>(source: AsyncQueryable<T>, keySelector: function, elementSelector: function, spanSelector: function): AsyncIterable<R>

- - Defined in fn/spanMapAsync.ts:29

  Creates a subquery whose elements are the contiguous ranges of elements that share the same key.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  #### Returns AsyncIterable<HierarchyGrouping<K, TNode, T>>

- - Defined in fn/spanMapAsync.ts:37

  Creates a subquery whose elements are the contiguous ranges of elements that share the same key.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  #### Returns AsyncIterable<Grouping<K, T>>

- - Defined in fn/spanMapAsync.ts:46

  Creates a subquery whose values are computed from each element of the contiguous ranges of elements that share the same key.

  category

    Subquery

  #### Type parameters

  - T
  - K
  - V

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback used to select a value for an element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  #### Returns AsyncIterable<Grouping<K, V>>

- - Defined in fn/spanMapAsync.ts:56

  Creates a subquery whose values are computed from the contiguous ranges of elements that share the same key.

  category

    Subquery

  #### Type parameters

  - T
  - K
  - V
  - R

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - elementSelector: function —

    A callback used to select a value for an element.

    - - (element: T): V | PromiseLike<V>

      - #### Parameters

        - element: T

        #### Returns V | PromiseLike<V>

  - spanSelector: function —

    A callback used to select a result from a contiguous range.

    - - (key: K, elements: Iterable<V>): R | PromiseLike<R>

      - #### Parameters

        - key: K
        - elements: Iterable<V>

        #### Returns R | PromiseLike<R>

  #### Returns AsyncIterable<R>

### symmetricDifference

- symmetricDifference<TNode, T>(left: HierarchyIterable<TNode, T>, right: Queryable<T>, equaler?: Equaler<T>): HierarchyIterable<TNode, T>
- symmetricDifference<TNode, T>(left: Queryable<T>, right: HierarchyIterable<TNode, T>, equaler?: Equaler<T>): HierarchyIterable<TNode, T>
- symmetricDifference<T>(left: Queryable<T>, right: Queryable<T>, equaler?: Equaler<T>): Iterable<T>

- - Defined in fn/symmetricDifference.ts:34

  Creates a subquery for the symmetric difference between two Queryable objects. The result is an [[Iterable]] containings the elements that exist in only left or right, but not in both.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: HierarchyIterable<TNode, T> —

    A Queryable object.

  - right: Queryable<T> —

    A Queryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/symmetricDifference.ts:45

  Creates a subquery for the symmetric difference between two Queryable objects. The result is an [[Iterable]] containings the elements that exist in only left or right, but not in both.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: Queryable<T> —

    A Queryable object.

  - right: HierarchyIterable<TNode, T> —

    A Queryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/symmetricDifference.ts:56

  Creates a subquery for the symmetric difference between two Queryable objects. The result is an [[Iterable]] containings the elements that exist in only left or right, but not in both.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - left: Queryable<T> —

    A Queryable object.

  - right: Queryable<T> —

    A Queryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns Iterable<T>

### symmetricDifferenceAsync

- symmetricDifferenceAsync<TNode, T>(left: PossiblyAsyncHierarchyIterable<TNode, T>, right: AsyncQueryable<T>, equaler?: Equaler<T>): AsyncHierarchyIterable<TNode, T>
- symmetricDifferenceAsync<TNode, T>(left: AsyncQueryable<T>, right: PossiblyAsyncHierarchyIterable<TNode, T>, equaler?: Equaler<T>): AsyncHierarchyIterable<TNode, T>
- symmetricDifferenceAsync<T>(left: AsyncQueryable<T>, right: AsyncQueryable<T>, equaler?: Equaler<T>): AsyncIterable<T>

- - Defined in fn/symmetricDifferenceAsync.ts:34

  Creates a subquery for the symmetric difference between two Queryable objects. The result is an [[AsyncIterable]] containings the elements that exist in only left or right, but not in both.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/symmetricDifferenceAsync.ts:45

  Creates a subquery for the symmetric difference between two Queryable objects. The result is an [[AsyncIterable]] containings the elements that exist in only left or right, but not in both.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/symmetricDifferenceAsync.ts:56

  Creates a subquery for the symmetric difference between two Queryable objects. The result is an [[AsyncIterable]] containings the elements that exist in only left or right, but not in both.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncIterable<T>

### symmetricDifferenceBy

- symmetricDifferenceBy<TNode, T, K>(left: HierarchyIterable<TNode, T>, right: Queryable<T>, keySelector: function, keyEqualer?: Equaler<K>): HierarchyIterable<TNode, T>
- symmetricDifferenceBy<TNode, T, K>(left: Queryable<T>, right: HierarchyIterable<TNode, T>, keySelector: function, keyEqualer?: Equaler<K>): HierarchyIterable<TNode, T>
- symmetricDifferenceBy<T, K>(left: Queryable<T>, right: Queryable<T>, keySelector: function, keyEqualer?: Equaler<K>): Iterable<T>

- - Defined in fn/symmetricDifferenceBy.ts:35

  Creates a subquery for the symmetric difference between two Queryable objects, where set identity is determined by the selected key. The result is an [[Iterable]] containings the elements that exist in only left or right, but not in both.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - left: HierarchyIterable<TNode, T> —

    A Queryable object.

  - right: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/symmetricDifferenceBy.ts:47

  Creates a subquery for the symmetric difference between two Queryable objects, where set identity is determined by the selected key. The result is an [[Iterable]] containings the elements that exist in only left or right, but not in both.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - left: Queryable<T> —

    A Queryable object.

  - right: HierarchyIterable<TNode, T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/symmetricDifferenceBy.ts:59

  Creates a subquery for the symmetric difference between two Queryable objects, where set identity is determined by the selected key. The result is an [[Iterable]] containings the elements that exist in only left or right, but not in both.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - left: Queryable<T> —

    A Queryable object.

  - right: Queryable<T> —

    A Queryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Iterable<T>

### symmetricDifferenceByAsync

- symmetricDifferenceByAsync<TNode, T, K>(left: PossiblyAsyncHierarchyIterable<TNode, T>, right: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncHierarchyIterable<TNode, T>
- symmetricDifferenceByAsync<TNode, T, K>(left: AsyncQueryable<T>, right: PossiblyAsyncHierarchyIterable<TNode, T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncHierarchyIterable<TNode, T>
- symmetricDifferenceByAsync<T, K>(left: AsyncQueryable<T>, right: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncIterable<T>

- - Defined in fn/symmetricDifferenceByAsync.ts:35

  Creates a subquery for the symmetric difference between two AsyncQueryable objects, where set identity is determined by the selected key. The result is an [[AsyncIterable]] containings the elements that exist in only left or right, but not in both.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - left: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/symmetricDifferenceByAsync.ts:47

  Creates a subquery for the symmetric difference between two AsyncQueryable objects, where set identity is determined by the selected key. The result is an [[AsyncIterable]] containings the elements that exist in only left or right, but not in both.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/symmetricDifferenceByAsync.ts:59

  Creates a subquery for the symmetric difference between two AsyncQueryable objects, where set identity is determined by the selected key. The result is an [[AsyncIterable]] containings the elements that exist in only left or right, but not in both.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncIterable<T>

### take

- take<TNode, T>(source: HierarchyIterable<TNode, T>, count: number): HierarchyIterable<TNode, T>
- take<T>(source: Queryable<T>, count: number): Iterable<T>

- - Defined in fn/take.ts:29

  Creates a subquery containing the first elements up to the supplied count.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A Queryable object.

  - count: number —

    The number of elements to take.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/take.ts:38

  Creates a subquery containing the first elements up to the supplied count.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - count: number —

    The number of elements to take.

  #### Returns Iterable<T>

### takeAsync

- takeAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, count: number): AsyncHierarchyIterable<TNode, T>
- takeAsync<T>(source: AsyncQueryable<T>, count: number): AsyncIterable<T>

- - Defined in fn/takeAsync.ts:28

  Creates a subquery containing the first elements up to the supplied count.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - count: number —

    The number of elements to take.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/takeAsync.ts:36

  Creates a subquery containing the first elements up to the supplied count.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - count: number —

    The number of elements to take.

  #### Returns AsyncIterable<T>

### takeRight

- takeRight<TNode, T>(source: HierarchyIterable<TNode, T>, count: number): HierarchyIterable<TNode, T>
- takeRight<T>(source: Queryable<T>, count: number): Iterable<T>

- - Defined in fn/takeRight.ts:29

  Creates a subquery containing the last elements up to the supplied count.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A Queryable object.

  - count: number —

    The number of elements to take.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/takeRight.ts:38

  Creates a subquery containing the last elements up to the supplied count.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - count: number —

    The number of elements to take.

  #### Returns Iterable<T>

### takeRightAsync

- takeRightAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, count: number): AsyncHierarchyIterable<TNode, T>
- takeRightAsync<T>(source: AsyncQueryable<T>, count: number): AsyncIterable<T>

- - Defined in fn/takeRightAsync.ts:29

  Creates a subquery containing the last elements up to the supplied count.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - count: number —

    The number of elements to take.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/takeRightAsync.ts:38

  Creates a subquery containing the last elements up to the supplied count.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - count: number —

    The number of elements to take.

  #### Returns AsyncIterable<T>

### takeUntil

- takeUntil<TNode, T, U>(source: HierarchyIterable<TNode, T>, predicate: function): HierarchyIterable<TNode, U>
- takeUntil<TNode, T>(source: HierarchyIterable<TNode, T>, predicate: function): HierarchyIterable<TNode, T>
- takeUntil<T, U>(source: Queryable<T>, predicate: function): Iterable<U>
- takeUntil<T>(source: Queryable<T>, predicate: function): Iterable<T>

- - Defined in fn/takeUntil.ts:28

  Creates a subquery containing the first elements that do not match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - U: T

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A Queryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/takeUntil.ts:36

  Creates a subquery containing the first elements that do not match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A Queryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/takeUntil.ts:44

  Creates a subquery containing the first elements that do not match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T
  - U: T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns Iterable<U>

- - Defined in fn/takeUntil.ts:52

  Creates a subquery containing the first elements that do not match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns Iterable<T>

### takeUntilAsync

- takeUntilAsync<TNode, T, U>(source: PossiblyAsyncHierarchyIterable<TNode, T>, predicate: function): AsyncHierarchyIterable<TNode, U>
- takeUntilAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, predicate: function): AsyncHierarchyIterable<TNode, T>
- takeUntilAsync<T, U>(source: AsyncQueryable<T>, predicate: function): AsyncIterable<U>
- takeUntilAsync<T>(source: AsyncQueryable<T>, predicate: function): AsyncIterable<T>

- - Defined in fn/takeUntilAsync.ts:28

  Creates a subquery containing the first elements that do not match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - U: T

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/takeUntilAsync.ts:36

  Creates a subquery containing the first elements that do not match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/takeUntilAsync.ts:44

  Creates a subquery containing the first elements that do not match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T
  - U: T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns AsyncIterable<U>

- - Defined in fn/takeUntilAsync.ts:52

  Creates a subquery containing the first elements that do not match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncIterable<T>

### takeWhile

- takeWhile<TNode, T, U>(source: HierarchyIterable<TNode, T>, predicate: function): HierarchyIterable<TNode, U>
- takeWhile<TNode, T>(source: HierarchyIterable<TNode, T>, predicate: function): HierarchyIterable<TNode, T>
- takeWhile<T, U>(source: Queryable<T>, predicate: function): Iterable<U>
- takeWhile<T>(source: Queryable<T>, predicate: function): Iterable<T>

- - Defined in fn/takeWhile.ts:28

  Creates a subquery containing the first elements that match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - U: T

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A Queryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/takeWhile.ts:36

  Creates a subquery containing the first elements that match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A Queryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/takeWhile.ts:44

  Creates a subquery containing the first elements that match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T
  - U: T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns Iterable<U>

- - Defined in fn/takeWhile.ts:52

  Creates a subquery containing the first elements that match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns Iterable<T>

### takeWhileAsync

- takeWhileAsync<TNode, T, U>(source: PossiblyAsyncHierarchyIterable<TNode, T>, predicate: function): AsyncHierarchyIterable<TNode, U>
- takeWhileAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, predicate: function): AsyncHierarchyIterable<TNode, T>
- takeWhileAsync<T, U>(source: AsyncQueryable<T>, predicate: function): AsyncIterable<U>
- takeWhileAsync<T>(source: AsyncQueryable<T>, predicate: function): AsyncIterable<T>

- - Defined in fn/takeWhileAsync.ts:28

  Creates a subquery containing the first elements that match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - U: T

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/takeWhileAsync.ts:36

  Creates a subquery containing the first elements that match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/takeWhileAsync.ts:44

  Creates a subquery containing the first elements that match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T
  - U: T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns AsyncIterable<U>

- - Defined in fn/takeWhileAsync.ts:52

  Creates a subquery containing the first elements that match the supplied predicate.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - predicate: function —

    A callback used to match each element.

    - - (element: T): boolean | PromiseLike<boolean>

      - #### Parameters

        - element: T

        #### Returns boolean | PromiseLike<boolean>

  #### Returns AsyncIterable<T>

### tap

- tap<TNode, T>(source: HierarchyIterable<TNode, T>, callback: function): HierarchyIterable<TNode, T>
- tap<T>(source: Queryable<T>, callback: function): Iterable<T>

- - Defined in fn/tap.ts:28

  Lazily invokes a callback as each element of the iterable is iterated.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A Queryable object.

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): void

      - #### Parameters

        - element: T
        - offset: number

        #### Returns void

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/tap.ts:36

  Lazily invokes a callback as each element of the iterable is iterated.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): void

      - #### Parameters

        - element: T
        - offset: number

        #### Returns void

  #### Returns Iterable<T>

### tapAsync

- tapAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, callback: function): AsyncHierarchyIterable<TNode, T>
- tapAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, callback: function): AsyncHierarchyIterable<TNode, T>
- tapAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, callback: function): AsyncHierarchyIterable<TNode, T>
- tapAsync<T>(source: AsyncQueryable<T>, callback: function): AsyncIterable<T>
- tapAsync<T>(source: AsyncQueryable<T>, callback: function): AsyncIterable<T>
- tapAsync<T>(source: AsyncQueryable<T>, callback: function): AsyncIterable<T>

- - Defined in fn/tapAsync.ts:28

  Lazily invokes a callback as each element of the iterable is iterated.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): void

      - #### Parameters

        - element: T
        - offset: number

        #### Returns void

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/tapAsync.ts:36

  Lazily invokes a callback as each element of the iterable is iterated.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): PromiseLike<void>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns PromiseLike<void>

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/tapAsync.ts:44

  Lazily invokes a callback as each element of the iterable is iterated.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): PromiseLike<void> | void

      - #### Parameters

        - element: T
        - offset: number

        #### Returns PromiseLike<void> | void

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/tapAsync.ts:52

  Lazily invokes a callback as each element of the iterable is iterated.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): void

      - #### Parameters

        - element: T
        - offset: number

        #### Returns void

  #### Returns AsyncIterable<T>

- - Defined in fn/tapAsync.ts:60

  Lazily invokes a callback as each element of the iterable is iterated.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): PromiseLike<void>

      - #### Parameters

        - element: T
        - offset: number

        #### Returns PromiseLike<void>

  #### Returns AsyncIterable<T>

- - Defined in fn/tapAsync.ts:68

  Lazily invokes a callback as each element of the iterable is iterated.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - callback: function —

    The callback to invoke.

    - - (element: T, offset: number): PromiseLike<void> | void

      - #### Parameters

        - element: T
        - offset: number

        #### Returns PromiseLike<void> | void

  #### Returns AsyncIterable<T>

### through

- through<T, S, R>(source: S, callback: function): R

- - Defined in fn/through.ts:28

  Pass the entire source to the provided callback, returning a Queryable from the result.

  category

    Subquery

  #### Type parameters

  - T
  - S: Queryable<T>
  - R: Queryable<any>

  #### Parameters

  - source: S —

    A Queryable object.

  - callback: function —

    A callback function.

    - - (source: S): R

      - #### Parameters

        - source: S

        #### Returns R

### throughAsync

- throughAsync<T, S, R>(source: S, callback: function): R

- - Defined in fn/throughAsync.ts:28

  Pass the entire source to the provided callback, returning an AsyncQueryable from the result.

  category

    Subquery

  #### Type parameters

  - T
  - S: AsyncQueryable<T>
  - R: AsyncQueryable<any>

  #### Parameters

  - source: S —

    An AsyncQueryable object.

  - callback: function —

    A callback function.

    - - (source: S): R

      - #### Parameters

        - source: S

        #### Returns R

### union

- union<TNode, T>(left: HierarchyIterable<TNode, T>, right: Queryable<T>, equaler?: Equaler<T>): HierarchyIterable<TNode, T>
- union<TNode, T>(left: Queryable<T>, right: HierarchyIterable<TNode, T>, equaler?: Equaler<T>): HierarchyIterable<TNode, T>
- union<T>(left: Queryable<T>, right: Queryable<T>, equaler?: Equaler<T>): Iterable<T>

- - Defined in fn/union.ts:32

  Creates a subquery for the set union of two Queryable objects.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: HierarchyIterable<TNode, T> —

    A Queryable value.

  - right: Queryable<T> —

    A Queryable value.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/union.ts:41

  Creates a subquery for the set union of two Queryable objects.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: Queryable<T> —

    A Queryable value.

  - right: HierarchyIterable<TNode, T> —

    A Queryable value.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/union.ts:50

  Creates a subquery for the set union of two Queryable objects.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - left: Queryable<T> —

    A Queryable value.

  - right: Queryable<T> —

    A Queryable value.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns Iterable<T>

### unionAsync

- unionAsync<TNode, T>(left: PossiblyAsyncHierarchyIterable<TNode, T>, right: AsyncQueryable<T>, equaler?: Equaler<T>): AsyncHierarchyIterable<TNode, T>
- unionAsync<TNode, T>(left: AsyncQueryable<T>, right: PossiblyAsyncHierarchyIterable<TNode, T>, equaler?: Equaler<T>): AsyncHierarchyIterable<TNode, T>
- unionAsync<T>(left: AsyncQueryable<T>, right: AsyncQueryable<T>, equaler?: Equaler<T>): AsyncIterable<T>

- - Defined in fn/unionAsync.ts:32

  Creates a subquery for the set union of two AsyncQueryable objects.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/unionAsync.ts:41

  Creates a subquery for the set union of two AsyncQueryable objects.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/unionAsync.ts:50

  Creates a subquery for the set union of two AsyncQueryable objects.

  category

    Subquery

  #### Type parameters

  - T

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - Optional equaler: Equaler<T> —

    An [[Equaler]] object used to compare equality.

  #### Returns AsyncIterable<T>

### unionBy

- unionBy<TNode, T, K>(left: HierarchyIterable<TNode, T>, right: Queryable<T>, keySelector: function, keyEqualer?: Equaler<K>): HierarchyIterable<TNode, T>
- unionBy<TNode, T, K>(left: Queryable<T>, right: HierarchyIterable<TNode, T>, keySelector: function, keyEqualer?: Equaler<K>): HierarchyIterable<TNode, T>
- unionBy<T, K>(left: Queryable<T>, right: Queryable<T>, keySelector: function, keyEqualer?: Equaler<K>): Iterable<T>

- - Defined in fn/unionBy.ts:33

  Creates a subquery for the set union of two Queryable objects, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - left: HierarchyIterable<TNode, T> —

    A Queryable value.

  - right: Queryable<T> —

    A Queryable value.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/unionBy.ts:43

  Creates a subquery for the set union of two Queryable objects, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - left: Queryable<T> —

    A Queryable value.

  - right: HierarchyIterable<TNode, T> —

    A Queryable value.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns HierarchyIterable<TNode, T>

- - Defined in fn/unionBy.ts:53

  Creates a subquery for the set union of two Queryable objects, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - left: Queryable<T> —

    A Queryable value.

  - right: Queryable<T> —

    A Queryable value.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Iterable<T>

### unionByAsync

- unionByAsync<TNode, T, K>(left: PossiblyAsyncHierarchyIterable<TNode, T>, right: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncHierarchyIterable<TNode, T>
- unionByAsync<TNode, T, K>(left: AsyncQueryable<T>, right: PossiblyAsyncHierarchyIterable<TNode, T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncHierarchyIterable<TNode, T>
- unionByAsync<T, K>(left: AsyncQueryable<T>, right: AsyncQueryable<T>, keySelector: function, keyEqualer?: Equaler<K>): AsyncIterable<T>

- - Defined in fn/unionByAsync.ts:33

  Creates a subquery for the set union of two AsyncQueryable objects, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - left: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/unionByAsync.ts:43

  Creates a subquery for the set union of two AsyncQueryable objects, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: PossiblyAsyncHierarchyIterable<TNode, T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncHierarchyIterable<TNode, T>

- - Defined in fn/unionByAsync.ts:53

  Creates a subquery for the set union of two AsyncQueryable objects, where set identity is determined by the selected key.

  category

    Subquery

  #### Type parameters

  - T
  - K

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<T> —

    An AsyncQueryable object.

  - keySelector: function —

    A callback used to select the key for each element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncIterable<T>

## Functions (Order)

### orderBy

- orderBy<TNode, T, K>(source: HierarchyIterable<TNode, T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): OrderedHierarchyIterable<TNode, T>
- orderBy<T, K>(source: Queryable<T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): OrderedIterable<T>

- - Defined in fn/orderBy.ts:31

  Creates an OrderedHierarchyIterable whose elements are sorted in ascending order by the provided key.

  category

    Order

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns OrderedHierarchyIterable<TNode, T>

- - Defined in fn/orderBy.ts:40

  Creates an OrderedIterable whose elements are sorted in ascending order by the provided key.

  category

    Order

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: Queryable<T> —

    A HierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns OrderedIterable<T>

### orderByAsync

- orderByAsync<TNode, T, K>(source: PossiblyAsyncHierarchyIterable<TNode, T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): AsyncOrderedHierarchyIterable<TNode, T>
- orderByAsync<T, K>(source: AsyncQueryable<T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): AsyncOrderedIterable<T>

- - Defined in fn/orderByAsync.ts:31

  Creates an AsyncOrderedHierarchyIterable whose elements are sorted in ascending order by the provided key.

  category

    Order

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns AsyncOrderedHierarchyIterable<TNode, T>

- - Defined in fn/orderByAsync.ts:40

  Creates an AsyncOrderedIterable whose elements are sorted in ascending order by the provided key.

  category

    Order

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns AsyncOrderedIterable<T>

### orderByDescending

- orderByDescending<TNode, T, K>(source: HierarchyIterable<TNode, T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): OrderedHierarchyIterable<TNode, T>
- orderByDescending<T, K>(source: Queryable<T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): OrderedIterable<T>

- - Defined in fn/orderBy.ts:57

  Creates an OrderedHierarchyIterable whose elements are sorted in descending order by the provided key.

  category

    Order

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns OrderedHierarchyIterable<TNode, T>

- - Defined in fn/orderBy.ts:66

  Creates an OrderedIterable whose elements are sorted in descending order by the provided key.

  category

    Order

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: Queryable<T> —

    A HierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns OrderedIterable<T>

### orderByDescendingAsync

- orderByDescendingAsync<TNode, T, K>(source: PossiblyAsyncHierarchyIterable<TNode, T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): AsyncOrderedHierarchyIterable<TNode, T>
- orderByDescendingAsync<T, K>(source: AsyncQueryable<T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): AsyncOrderedIterable<T>

- - Defined in fn/orderByAsync.ts:57

  Creates an AsyncOrderedHierarchyIterable whose elements are sorted in descending order by the provided key.

  category

    Order

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns AsyncOrderedHierarchyIterable<TNode, T>

- - Defined in fn/orderByAsync.ts:66

  Creates an AsyncOrderedIterable whose elements are sorted in descending order by the provided key.

  category

    Order

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: AsyncQueryable<T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns AsyncOrderedIterable<T>

### thenBy

- thenBy<TNode, T, K>(source: OrderedHierarchyIterable<TNode, T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): OrderedHierarchyIterable<TNode, T>
- thenBy<T, K>(source: OrderedIterable<T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): OrderedIterable<T>

- - Defined in fn/orderBy.ts:83

  Creates a subsequent OrderedHierarchyIterable whose elements are also sorted in ascending order by the provided key.

  category

    Order

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - source: OrderedHierarchyIterable<TNode, T> —

    An OrderedHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns OrderedHierarchyIterable<TNode, T>

- - Defined in fn/orderBy.ts:92

  Creates a subsequent OrderedIterable whose elements are also sorted in ascending order by the provided key.

  category

    Order

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: OrderedIterable<T> —

    An OrderedHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns OrderedIterable<T>

### thenByAsync

- thenByAsync<TNode, T, K>(source: PossiblyAsyncOrderedHierarchyIterable<TNode, T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): AsyncOrderedHierarchyIterable<TNode, T>
- thenByAsync<T, K>(source: PossiblyAsyncOrderedIterable<T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): AsyncOrderedIterable<T>

- - Defined in fn/orderByAsync.ts:83

  Creates a subsequent AsyncOrderedHierarchyIterable whose elements are also sorted in ascending order by the provided key.

  category

    Order

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - source: PossiblyAsyncOrderedHierarchyIterable<TNode, T> —

    An OrderedHierarchyIterable or AsyncOrderedHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns AsyncOrderedHierarchyIterable<TNode, T>

- - Defined in fn/orderByAsync.ts:92

  Creates a subsequent AsyncOrderedIterable whose elements are also sorted in ascending order by the provided key.

  category

    Order

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: PossiblyAsyncOrderedIterable<T> —

    An OrderedHierarchyIterable or AsyncOrderedHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns AsyncOrderedIterable<T>

### thenByDescending

- thenByDescending<TNode, T, K>(source: OrderedHierarchyIterable<TNode, T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): OrderedHierarchyIterable<TNode, T>
- thenByDescending<T, K>(source: OrderedIterable<T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): OrderedIterable<T>

- - Defined in fn/orderBy.ts:109

  Creates a subsequent OrderedHierarchyIterable whose elements are also sorted in descending order by the provided key.

  category

    Order

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - source: OrderedHierarchyIterable<TNode, T> —

    An OrderedHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns OrderedHierarchyIterable<TNode, T>

- - Defined in fn/orderBy.ts:118

  Creates a subsequent OrderedIterable whose elements are also sorted in descending order by the provided key.

  category

    Order

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: OrderedIterable<T> —

    An OrderedHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns OrderedIterable<T>

### thenByDescendingAsync

- thenByDescendingAsync<TNode, T, K>(source: PossiblyAsyncOrderedHierarchyIterable<TNode, T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): AsyncOrderedHierarchyIterable<TNode, T>
- thenByDescendingAsync<T, K>(source: PossiblyAsyncOrderedIterable<T>, keySelector: function, keyComparer?: Comparison<K> | Comparer<K>): AsyncOrderedIterable<T>

- - Defined in fn/orderByAsync.ts:109

  Creates a subsequent AsyncOrderedHierarchyIterable whose elements are also sorted in descending order by the provided key.

  category

    Order

  #### Type parameters

  - TNode
  - T: TNode
  - K

  #### Parameters

  - source: PossiblyAsyncOrderedHierarchyIterable<TNode, T> —

    An OrderedHierarchyIterable or AsyncOrderedHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns AsyncOrderedHierarchyIterable<TNode, T>

- - Defined in fn/orderByAsync.ts:118

  Creates a subsequent AsyncOrderedIterable whose elements are also sorted in descending order by the provided key.

  category

    Order

  #### Type parameters

  - T
  - K

  #### Parameters

  - source: PossiblyAsyncOrderedIterable<T> —

    An OrderedHierarchyIterable or AsyncOrderedHierarchyIterable object.

  - keySelector: function —

    A callback used to select the key for an element.

    - - (element: T): K

      - #### Parameters

        - element: T

        #### Returns K

  - Optional keyComparer: Comparison<K> | Comparer<K> —

    An optional callback used to compare two keys.

  #### Returns AsyncOrderedIterable<T>

## Functions (Join)

### fullJoin

- fullJoin<O, I, K, R>(outer: Queryable<O>, inner: Queryable<I>, outerKeySelector: function, innerKeySelector: function, resultSelector: function, keyEqualer?: Equaler<K>): Iterable<R>

- - Defined in fn/fullJoin.ts:39

  Creates an [[Iterable]] for the correlated elements between an outer Queryable object and an inner Queryable object.

  category

    Join

  #### Type parameters

  - O
  - I
  - K
  - R

  #### Parameters

  - outer: Queryable<O> —

    A Queryable object.

  - inner: Queryable<I> —

    A Queryable object.

  - outerKeySelector: function —

    A callback used to select the key for an element in `outer`.

    - - (element: O): K

      - #### Parameters

        - element: O

        #### Returns K

  - innerKeySelector: function —

    A callback used to select the key for an element in `inner`.

    - - (element: I): K

      - #### Parameters

        - element: I

        #### Returns K

  - resultSelector: function —

    A callback used to select the result for the correlated elements.

    - - (outer: O | undefined, inner: I | undefined): R

      - #### Parameters

        - outer: O | undefined
        - inner: I | undefined

        #### Returns R

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Iterable<R>

### fullJoinAsync

- fullJoinAsync<O, I, K, R>(outer: AsyncQueryable<O>, inner: AsyncQueryable<I>, outerKeySelector: function, innerKeySelector: function, resultSelector: function, keyEqualer?: Equaler<K>): AsyncIterable<R>

- - Defined in fn/fullJoinAsync.ts:39

  Creates an [[AsyncIterable]] for the correlated elements between an outer AsyncQueryable object and an inner AsyncQueryable object.

  category

    Join

  #### Type parameters

  - O
  - I
  - K
  - R

  #### Parameters

  - outer: AsyncQueryable<O> —

    An AsyncQueryable object.

  - inner: AsyncQueryable<I> —

    An AsyncQueryable object.

  - outerKeySelector: function —

    A callback used to select the key for an element in `outer`.

    - - (element: O): K

      - #### Parameters

        - element: O

        #### Returns K

  - innerKeySelector: function —

    A callback used to select the key for an element in `inner`.

    - - (element: I): K

      - #### Parameters

        - element: I

        #### Returns K

  - resultSelector: function —

    A callback used to select the result for the correlated elements.

    - - (outer: O | undefined, inner: I | undefined): R | PromiseLike<R>

      - #### Parameters

        - outer: O | undefined
        - inner: I | undefined

        #### Returns R | PromiseLike<R>

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncIterable<R>

### groupJoin

- groupJoin<O, I, K, R>(outer: Queryable<O>, inner: Queryable<I>, outerKeySelector: function, innerKeySelector: function, resultSelector: function, keyEqualer?: Equaler<K>): Iterable<R>

- - Defined in fn/groupJoin.ts:35

  Creates a grouped [[Iterable]] for the correlated elements between an outer Queryable object and an inner Queryable object.

  category

    Join

  #### Type parameters

  - O
  - I
  - K
  - R

  #### Parameters

  - outer: Queryable<O> —

    A Queryable object.

  - inner: Queryable<I> —

    A Queryable object.

  - outerKeySelector: function —

    A callback used to select the key for an element in `outer`.

    - - (element: O): K

      - #### Parameters

        - element: O

        #### Returns K

  - innerKeySelector: function —

    A callback used to select the key for an element in `inner`.

    - - (element: I): K

      - #### Parameters

        - element: I

        #### Returns K

  - resultSelector: function —

    A callback used to select the result for the correlated elements.

    - - (outer: O, inner: Iterable<I>): R

      - #### Parameters

        - outer: O
        - inner: Iterable<I>

        #### Returns R

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Iterable<R>

### groupJoinAsync

- groupJoinAsync<O, I, K, R>(outer: AsyncQueryable<O>, inner: AsyncQueryable<I>, outerKeySelector: function, innerKeySelector: function, resultSelector: function, keyEqualer?: Equaler<K>): AsyncIterable<R>

- - Defined in fn/groupJoinAsync.ts:35

  Creates a grouped [[AsyncIterable]] for the correlated elements between an outer AsyncQueryable object and an inner AsyncQueryable object.

  category

    Join

  #### Type parameters

  - O
  - I
  - K
  - R

  #### Parameters

  - outer: AsyncQueryable<O> —

    An AsyncQueryable object.

  - inner: AsyncQueryable<I> —

    An AsyncQueryable object.

  - outerKeySelector: function —

    A callback used to select the key for an element in `outer`.

    - - (element: O): K

      - #### Parameters

        - element: O

        #### Returns K

  - innerKeySelector: function —

    A callback used to select the key for an element in `inner`.

    - - (element: I): K

      - #### Parameters

        - element: I

        #### Returns K

  - resultSelector: function —

    A callback used to select the result for the correlated elements.

    - - (outer: O, inner: Iterable<I>): R | PromiseLike<R>

      - #### Parameters

        - outer: O
        - inner: Iterable<I>

        #### Returns R | PromiseLike<R>

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncIterable<R>

### join

- join<O, I, K, R>(outer: Queryable<O>, inner: Queryable<I>, outerKeySelector: function, innerKeySelector: function, resultSelector: function, keyEqualer?: Equaler<K>): Iterable<R>

- - Defined in fn/join.ts:34

  Creates an [[Iterable]] for the correlated elements of two Queryable objects.

  category

    Join

  #### Type parameters

  - O
  - I
  - K
  - R

  #### Parameters

  - outer: Queryable<O> —

    A Queryable object.

  - inner: Queryable<I> —

    A Queryable object.

  - outerKeySelector: function —

    A callback used to select the key for an element in `outer`.

    - - (element: O): K

      - #### Parameters

        - element: O

        #### Returns K

  - innerKeySelector: function —

    A callback used to select the key for an element in `inner`.

    - - (element: I): K

      - #### Parameters

        - element: I

        #### Returns K

  - resultSelector: function —

    A callback used to select the result for the correlated elements.

    - - (outer: O, inner: I): R

      - #### Parameters

        - outer: O
        - inner: I

        #### Returns R

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns Iterable<R>

### joinAsync

- joinAsync<O, I, K, R>(outer: AsyncQueryable<O>, inner: AsyncQueryable<I>, outerKeySelector: function, innerKeySelector: function, resultSelector: function, keyEqualer?: Equaler<K>): AsyncIterable<R>

- - Defined in fn/joinAsync.ts:34

  Creates an [[AsyncIterable]] for the correlated elements of two AsyncQueryable objects.

  category

    Join

  #### Type parameters

  - O
  - I
  - K
  - R

  #### Parameters

  - outer: AsyncQueryable<O> —

    An AsyncQueryable.

  - inner: AsyncQueryable<I> —

    An AsyncQueryable.

  - outerKeySelector: function —

    A callback used to select the key for an element in `outer`.

    - - (element: O): K

      - #### Parameters

        - element: O

        #### Returns K

  - innerKeySelector: function —

    A callback used to select the key for an element in `inner`.

    - - (element: I): K

      - #### Parameters

        - element: I

        #### Returns K

  - resultSelector: function —

    A callback used to select the result for the correlated elements.

    - - (outer: O, inner: I): R | PromiseLike<R>

      - #### Parameters

        - outer: O
        - inner: I

        #### Returns R | PromiseLike<R>

  - Optional keyEqualer: Equaler<K> —

    An [[Equaler]] object used to compare key equality.

  #### Returns AsyncIterable<R>

### zip

- zip<T, U>(left: Queryable<T>, right: Queryable<U>): Iterable<[T, U]>
- zip<T, U, R>(left: Queryable<T>, right: Queryable<U>, selector: function): Iterable<R>

- - Defined in fn/zip.ts:30

  Creates a subquery that combines two Queryable objects by combining elements in tuples.

  category

    Join

  #### Type parameters

  - T
  - U

  #### Parameters

  - left: Queryable<T> —

    A Queryable.

  - right: Queryable<U> —

    A Queryable.

  #### Returns Iterable<[T, U]>

- - Defined in fn/zip.ts:40

  Creates a subquery that combines two Queryable objects by combining elements using the supplied callback.

  category

    Join

  #### Type parameters

  - T
  - U
  - R

  #### Parameters

  - left: Queryable<T> —

    A Queryable.

  - right: Queryable<U> —

    A Queryable.

  - selector: function —

    A callback used to combine two elements.

    - - (left: T, right: U): R

      - #### Parameters

        - left: T
        - right: U

        #### Returns R

  #### Returns Iterable<R>

### zipAsync

- zipAsync<T, U>(left: AsyncQueryable<T>, right: AsyncQueryable<U>): AsyncIterable<[T, U]>
- zipAsync<T, U, R>(left: AsyncQueryable<T>, right: AsyncQueryable<U>, selector: function): AsyncIterable<R>

- - Defined in fn/zipAsync.ts:30

  Creates a subquery that combines two AsyncQueryable objects by combining elements in tuples.

  category

    Join

  #### Type parameters

  - T
  - U

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<U> —

    An AsyncQueryable object.

  #### Returns AsyncIterable<[T, U]>

- - Defined in fn/zipAsync.ts:40

  Creates a subquery that combines two AsyncQueryable objects by combining elements using the supplied callback.

  category

    Join

  #### Type parameters

  - T
  - U
  - R

  #### Parameters

  - left: AsyncQueryable<T> —

    An AsyncQueryable object.

  - right: AsyncQueryable<U> —

    An AsyncQueryable object.

  - selector: function —

    A callback used to combine two elements.

    - - (left: T, right: U): R | PromiseLike<R>

      - #### Parameters

        - left: T
        - right: U

        #### Returns R | PromiseLike<R>

  #### Returns AsyncIterable<R>

## Functions (Hierarchy)

### ancestors

- ancestors<TNode, U>(source: HierarchyIterable<TNode>, predicate: function): HierarchyIterable<TNode, U>
- ancestors<TNode>(source: HierarchyIterable<TNode>, predicate?: undefined | function): HierarchyIterable<TNode>

- - Defined in fn/traversal.ts:34
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/traversal.ts:36
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns HierarchyIterable<TNode>

### ancestorsAndSelf

- ancestorsAndSelf<TNode, U>(source: HierarchyIterable<TNode>, predicate: function): HierarchyIterable<TNode, U>
- ancestorsAndSelf<TNode>(source: HierarchyIterable<TNode>, predicate?: undefined | function): HierarchyIterable<TNode>

- - Defined in fn/traversal.ts:44
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/traversal.ts:46
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns HierarchyIterable<TNode>

### ancestorsAndSelfAsync

- ancestorsAndSelfAsync<TNode, U>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate: function): AsyncHierarchyIterable<TNode, U>
- ancestorsAndSelfAsync<TNode>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate?: undefined | function): AsyncHierarchyIterable<TNode>

- - Defined in fn/traversalAsync.ts:44
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/traversalAsync.ts:46
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns AsyncHierarchyIterable<TNode>

### ancestorsAsync

- ancestorsAsync<TNode, U>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate: function): AsyncHierarchyIterable<TNode, U>
- ancestorsAsync<TNode>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate?: undefined | function): AsyncHierarchyIterable<TNode>

- - Defined in fn/traversalAsync.ts:34
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/traversalAsync.ts:36
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns AsyncHierarchyIterable<TNode>

### bottomMost

- bottomMost<TNode, T, U>(source: HierarchyIterable<TNode, T>, predicate: function): HierarchyIterable<TNode, U>
- bottomMost<TNode, T>(source: HierarchyIterable<TNode, T>, predicate?: undefined | function): HierarchyIterable<TNode, T>

- - Defined in fn/bottomMost.ts:33

  Creates a HierarchyIterable for the bottom-most elements of a HierarchyIterable. Elements of `source` that are an ancestor of any other element of `source` are removed.

  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode
  - U: T

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - predicate: function —

    An optional callback used to filter the results.

    - - (value: T): boolean

      - #### Parameters

        - value: T

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/bottomMost.ts:42

  Creates a HierarchyIterable for the bottom-most elements of a HierarchyIterable. Elements of `source` that are an ancestor of any other element of `source` are removed.

  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - Optional predicate: undefined | function —

    An optional callback used to filter the results.

  #### Returns HierarchyIterable<TNode, T>

### bottomMostAsync

- bottomMostAsync<TNode, T, U>(source: PossiblyAsyncHierarchyIterable<TNode, T>, predicate: function): AsyncHierarchyIterable<TNode, U>
- bottomMostAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, predicate?: undefined | function): AsyncHierarchyIterable<TNode, T>

- - Defined in fn/bottomMostAsync.ts:33

  Creates an AsyncHierarchyIterable for the bottom-most elements. Elements of `source` that are an ancestor of any other element of `source` are removed.

  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode
  - U: T

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - predicate: function —

    An optional callback used to filter the results.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/bottomMostAsync.ts:42

  Creates an AsyncHierarchyIterable for the bottom-most elements. Elements of `source` that are an ancestor of any other element of `source` are removed.

  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - Optional predicate: undefined | function —

    An optional callback used to filter the results.

  #### Returns AsyncHierarchyIterable<TNode, T>

### children

- children<TNode, U>(source: HierarchyIterable<TNode>, predicate: function): HierarchyIterable<TNode, U>
- children<TNode>(source: HierarchyIterable<TNode>, predicate?: undefined | function): HierarchyIterable<TNode>

- - Defined in fn/traversal.ts:134
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/traversal.ts:136
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns HierarchyIterable<TNode>

### childrenAsync

- childrenAsync<TNode, U>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate: function): AsyncHierarchyIterable<TNode, U>
- childrenAsync<TNode>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate?: undefined | function): AsyncHierarchyIterable<TNode>

- - Defined in fn/traversalAsync.ts:134
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/traversalAsync.ts:136
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns AsyncHierarchyIterable<TNode>

### descendants

- descendants<TNode, U>(source: HierarchyIterable<TNode>, predicate: function): HierarchyIterable<TNode, U>
- descendants<TNode>(source: HierarchyIterable<TNode>, predicate?: undefined | function): HierarchyIterable<TNode>

- - Defined in fn/traversal.ts:54
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/traversal.ts:56
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns HierarchyIterable<TNode>

### descendantsAndSelf

- descendantsAndSelf<TNode, U>(source: HierarchyIterable<TNode>, predicate: function): HierarchyIterable<TNode, U>
- descendantsAndSelf<TNode>(source: HierarchyIterable<TNode>, predicate?: undefined | function): HierarchyIterable<TNode>

- - Defined in fn/traversal.ts:64
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/traversal.ts:66
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns HierarchyIterable<TNode>

### descendantsAndSelfAsync

- descendantsAndSelfAsync<TNode, U>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate: function): AsyncHierarchyIterable<TNode, U>
- descendantsAndSelfAsync<TNode>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate?: undefined | function): AsyncHierarchyIterable<TNode>

- - Defined in fn/traversalAsync.ts:64
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/traversalAsync.ts:66
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns AsyncHierarchyIterable<TNode>

### descendantsAsync

- descendantsAsync<TNode, U>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate: function): AsyncHierarchyIterable<TNode, U>
- descendantsAsync<TNode>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate?: undefined | function): AsyncHierarchyIterable<TNode>

- - Defined in fn/traversalAsync.ts:54
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/traversalAsync.ts:56
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns AsyncHierarchyIterable<TNode>

### hierarchy

- hierarchy<TNode, T>(root: T, hierarchy: HierarchyProvider<TNode>): HierarchyIterable<TNode, T>

- - Defined in fn/hierarchy.ts:29

  Creates a HierarchyIterable for a root element using the provided HierarchyProvider.

  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - root: T —

    The root element.

  - hierarchy: HierarchyProvider<TNode> —

    A HierarchyProvider object.

  #### Returns HierarchyIterable<TNode, T>

### hierarchyAsync

- hierarchyAsync<TNode, T>(root: PromiseLike<T> | T, hierarchy: HierarchyProvider<TNode>): AsyncHierarchyIterable<TNode, T>

- - Defined in fn/hierarchyAsync.ts:29

  Creates an AsyncHierarchyIterable for a resolved root element using the provided HierarchyProvider.

  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - root: PromiseLike<T> | T —

    The root element.

  - hierarchy: HierarchyProvider<TNode> —

    A HierarchyProvider object.

  #### Returns AsyncHierarchyIterable<TNode, T>

### nthChild

- nthChild<TNode, T>(source: HierarchyIterable<TNode, T>, offset: number): HierarchyIterable<TNode>

- - Defined in fn/nthChild.ts:31

  Creates a HierarchyIterable for the child of each element at the specified offset. A negative offset starts from the last child.

  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - offset: number —

    The offset for the child.

  #### Returns HierarchyIterable<TNode>

### nthChildAsync

- nthChildAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, offset: number): AsyncHierarchyIterable<TNode>

- - Defined in fn/nthChildAsync.ts:31

  Creates an AsyncHierarchyIterable for the child of each element at the specified offset. A negative offset starts from the last child.

  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - offset: number —

    The offset for the child.

  #### Returns AsyncHierarchyIterable<TNode>

### parents

- parents<TNode, U>(source: HierarchyIterable<TNode>, predicate: function): HierarchyIterable<TNode, U>
- parents<TNode>(source: HierarchyIterable<TNode>, predicate?: undefined | function): HierarchyIterable<TNode>

- - Defined in fn/traversal.ts:74
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/traversal.ts:76
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns HierarchyIterable<TNode>

### parentsAsync

- parentsAsync<TNode, U>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate: function): AsyncHierarchyIterable<TNode, U>
- parentsAsync<TNode>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate?: undefined | function): AsyncHierarchyIterable<TNode>

- - Defined in fn/traversalAsync.ts:74
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/traversalAsync.ts:76
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns AsyncHierarchyIterable<TNode>

### root

- root<TNode, U>(source: HierarchyIterable<TNode>, predicate: function): HierarchyIterable<TNode, U>
- root<TNode>(source: HierarchyIterable<TNode>, predicate?: undefined | function): HierarchyIterable<TNode>

- - Defined in fn/traversal.ts:24
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/traversal.ts:26
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns HierarchyIterable<TNode>

### rootAsync

- rootAsync<TNode, U>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate: function): AsyncHierarchyIterable<TNode, U>
- rootAsync<TNode>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate?: undefined | function): AsyncHierarchyIterable<TNode>

- - Defined in fn/traversalAsync.ts:24
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/traversalAsync.ts:26
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns AsyncHierarchyIterable<TNode>

### self

- self<TNode, T, U>(source: HierarchyIterable<TNode, T>, predicate: function): HierarchyIterable<TNode, U>
- self<TNode, T>(source: HierarchyIterable<TNode, T>, predicate?: undefined | function): HierarchyIterable<TNode, T>

- - Defined in fn/traversal.ts:84
  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode
  - U: T

  #### Parameters

  - source: HierarchyIterable<TNode, T>
  - predicate: function
    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/traversal.ts:86
  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T>
  - Optional predicate: undefined | function

  #### Returns HierarchyIterable<TNode, T>

### selfAsync

- selfAsync<TNode, T, U>(source: PossiblyAsyncHierarchyIterable<TNode, T>, predicate: function): AsyncHierarchyIterable<TNode, U>
- selfAsync<TNode, T>(source: AsyncHierarchyIterable<T>, predicate?: undefined | function): AsyncHierarchyIterable<TNode, T>

- - Defined in fn/traversalAsync.ts:84
  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode
  - U: T

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T>
  - predicate: function
    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/traversalAsync.ts:86
  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: AsyncHierarchyIterable<T>
  - Optional predicate: undefined | function

  #### Returns AsyncHierarchyIterable<TNode, T>

### siblings

- siblings<TNode, U>(source: HierarchyIterable<TNode>, predicate: function): HierarchyIterable<TNode, U>
- siblings<TNode>(source: HierarchyIterable<TNode>, predicate?: undefined | function): HierarchyIterable<TNode>

- - Defined in fn/traversal.ts:94
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/traversal.ts:96
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns HierarchyIterable<TNode>

### siblingsAfterSelf

- siblingsAfterSelf<TNode, U>(source: HierarchyIterable<TNode>, predicate: function): HierarchyIterable<TNode, U>
- siblingsAfterSelf<TNode>(source: HierarchyIterable<TNode>, predicate?: undefined | function): HierarchyIterable<TNode>

- - Defined in fn/traversal.ts:124
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/traversal.ts:126
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns HierarchyIterable<TNode>

### siblingsAfterSelfAsync

- siblingsAfterSelfAsync<TNode, U>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate: function): AsyncHierarchyIterable<TNode, U>
- siblingsAfterSelfAsync<TNode>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate?: undefined | function): AsyncHierarchyIterable<TNode>

- - Defined in fn/traversalAsync.ts:124
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/traversalAsync.ts:126
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns AsyncHierarchyIterable<TNode>

### siblingsAndSelf

- siblingsAndSelf<TNode, U>(source: HierarchyIterable<TNode>, predicate: function): HierarchyIterable<TNode, U>
- siblingsAndSelf<TNode>(source: HierarchyIterable<TNode>, predicate?: undefined | function): HierarchyIterable<TNode>

- - Defined in fn/traversal.ts:104
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/traversal.ts:106
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns HierarchyIterable<TNode>

### siblingsAndSelfAsync

- siblingsAndSelfAsync<TNode, U>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate: function): AsyncHierarchyIterable<TNode, U>
- siblingsAndSelfAsync<TNode>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate?: undefined | function): AsyncHierarchyIterable<TNode>

- - Defined in fn/traversalAsync.ts:104
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/traversalAsync.ts:106
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns AsyncHierarchyIterable<TNode>

### siblingsAsync

- siblingsAsync<TNode, U>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate: function): AsyncHierarchyIterable<TNode, U>
- siblingsAsync<TNode>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate?: undefined | function): AsyncHierarchyIterable<TNode>

- - Defined in fn/traversalAsync.ts:94
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/traversalAsync.ts:96
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns AsyncHierarchyIterable<TNode>

### siblingsBeforeSelf

- siblingsBeforeSelf<TNode, U>(source: HierarchyIterable<TNode>, predicate: function): HierarchyIterable<TNode, U>
- siblingsBeforeSelf<TNode>(source: HierarchyIterable<TNode>, predicate?: undefined | function): HierarchyIterable<TNode>

- - Defined in fn/traversal.ts:114
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/traversal.ts:116
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: HierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns HierarchyIterable<TNode>

### siblingsBeforeSelfAsync

- siblingsBeforeSelfAsync<TNode, U>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate: function): AsyncHierarchyIterable<TNode, U>
- siblingsBeforeSelfAsync<TNode>(source: PossiblyAsyncHierarchyIterable<TNode>, predicate?: undefined | function): AsyncHierarchyIterable<TNode>

- - Defined in fn/traversalAsync.ts:114
  category

    Hierarchy

  #### Type parameters

  - TNode
  - U: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - predicate: function
    - - (element: TNode): boolean

      - #### Parameters

        - element: TNode

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/traversalAsync.ts:116
  category

    Hierarchy

  #### Type parameters

  - TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode>
  - Optional predicate: undefined | function

  #### Returns AsyncHierarchyIterable<TNode>

### toHierarchy

- toHierarchy<TNode, T>(source: OrderedIterable<T>, hierarchy: HierarchyProvider<TNode>): OrderedHierarchyIterable<TNode, T>
- toHierarchy<TNode, T>(source: Queryable<T>, hierarchy: HierarchyProvider<TNode>): HierarchyIterable<TNode, T>

- - Defined in fn/toHierarchy.ts:28

  Creates a HierarchyIterable using the provided `HierarchyProvider`.

  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: OrderedIterable<T> —

    A Queryable object.

  - hierarchy: HierarchyProvider<TNode> —

    A `HierarchyProvider`.

  #### Returns OrderedHierarchyIterable<TNode, T>

- - Defined in fn/toHierarchy.ts:36

  Creates a HierarchyIterable using the provided `HierarchyProvider`.

  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: Queryable<T> —

    A Queryable object.

  - hierarchy: HierarchyProvider<TNode> —

    A `HierarchyProvider`.

  #### Returns HierarchyIterable<TNode, T>

### toHierarchyAsync

- toHierarchyAsync<TNode, T>(source: PossiblyAsyncOrderedIterable<T>, hierarchy: HierarchyProvider<TNode>): AsyncOrderedHierarchyIterable<TNode, T>
- toHierarchyAsync<TNode, T>(source: AsyncQueryable<T>, hierarchy: HierarchyProvider<TNode>): AsyncHierarchyIterable<TNode, T>

- - Defined in fn/toHierarchyAsync.ts:28

  Creates an AsyncHierarchyIterable using the provided `HierarchyProvider`.

  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncOrderedIterable<T> —

    An AsyncQueryable object.

  - hierarchy: HierarchyProvider<TNode> —

    A `HierarchyProvider`.

  #### Returns AsyncOrderedHierarchyIterable<TNode, T>

- - Defined in fn/toHierarchyAsync.ts:36

  Creates an AsyncHierarchyIterable using the provided `HierarchyProvider`.

  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: AsyncQueryable<T> —

    An AsyncQueryable object.

  - hierarchy: HierarchyProvider<TNode> —

    A `HierarchyProvider`.

  #### Returns AsyncHierarchyIterable<TNode, T>

### topMost

- topMost<TNode, T, U>(source: HierarchyIterable<TNode, T>, predicate: function): HierarchyIterable<TNode, U>
- topMost<TNode, T>(source: HierarchyIterable<TNode, T>, predicate?: undefined | function): HierarchyIterable<TNode, T>

- - Defined in fn/topMost.ts:33

  Creates a HierarchyIterable for the top-most elements. Elements that are a descendant of any other element are removed.

  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode
  - U: T

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - predicate: function —

    An optional callback used to filter the results.

    - - (value: T): boolean

      - #### Parameters

        - value: T

        #### Returns boolean

  #### Returns HierarchyIterable<TNode, U>

- - Defined in fn/topMost.ts:42

  Creates a HierarchyIterable for the top-most elements. Elements that are a descendant of any other element are removed.

  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: HierarchyIterable<TNode, T> —

    A HierarchyIterable object.

  - Optional predicate: undefined | function —

    An optional callback used to filter the results.

  #### Returns HierarchyIterable<TNode, T>

### topMostAsync

- topMostAsync<TNode, T, U>(source: PossiblyAsyncHierarchyIterable<TNode, T>, predicate: function): AsyncHierarchyIterable<TNode, U>
- topMostAsync<TNode, T>(source: PossiblyAsyncHierarchyIterable<TNode, T>, predicate?: undefined | function): AsyncHierarchyIterable<TNode, T>

- - Defined in fn/topMostAsync.ts:33

  Creates an AsyncHierarchyIterable for the top-most elements. Elements of `source` that are a descendant of any other element of `source` are removed.

  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode
  - U: T

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - predicate: function —

    An optional callback used to filter the results.

    - - (element: T): boolean

      - #### Parameters

        - element: T

        #### Returns boolean

  #### Returns AsyncHierarchyIterable<TNode, U>

- - Defined in fn/topMostAsync.ts:42

  Creates an AsyncHierarchyIterable for the top-most elements. Elements of `source` that are a descendant of any other element of `source` are removed.

  category

    Hierarchy

  #### Type parameters

  - TNode
  - T: TNode

  #### Parameters

  - source: PossiblyAsyncHierarchyIterable<TNode, T> —

    A HierarchyIterable or AsyncHierarchyIterable object.

  - Optional predicate: undefined | function —

    An optional callback used to filter the results.

  #### Returns AsyncHierarchyIterable<TNode, T>

## Functions ()

### F

- F(): false

- - Defined in fn/common.ts:84

  Always returns `false`

  #### Returns false

### T

- T(): true

- - Defined in fn/common.ts:81

  Always returns `true`

  #### Returns true

### compare

- compare<T>(x: T, y: T): number

- - Defined in fn/common.ts:61

  Compares two values.

  #### Type parameters

  - T

  #### Parameters

  - x: T
  - y: T

  #### Returns number

### compose

- compose<X, Y, Z>(g: function, f: function): function

- - Defined in fn/common.ts:66

  Compose one function with another (i.e. `compose(g, f)` is `x => g(f(x))`)

  #### Type parameters

  - X
  - Y
  - Z

  #### Parameters

  - g: function
    - - (y: Y): Z

      - #### Parameters

        - y: Y

        #### Returns Z

  - f: function
    - - (x: X): Y

      - #### Parameters

        - x: X

        #### Returns Y

  #### Returns function

  - - (x: X): Z

    - #### Parameters

      - x: X

      #### Returns Z

### decrementer

- decrementer(start?: number): (Anonymous function)

- - Defined in fn/common.ts:51

  Creates a function that produces monotonically decreasing number values.

  #### Parameters

  - Default value start: number = 0

  #### Returns (Anonymous function)

### equate

- equate<T>(x: T, y: T): boolean

- - Defined in fn/common.ts:56

  Equate two values.

  #### Type parameters

  - T

  #### Parameters

  - x: T
  - y: T

  #### Returns boolean

### identity

- identity<T>(value: T): T

- - Defined in fn/common.ts:23

  A function that returns the provided value.

  #### Type parameters

  - T

  #### Parameters

  - value: T

  #### Returns T

### incrementer

- incrementer(start?: number): (Anonymous function)

- - Defined in fn/common.ts:46

  Creates a function that produces monotonically increasing number values.

  #### Parameters

  - Default value start: number = 0

  #### Returns (Anonymous function)

### lazy

- lazy<T, A>(factory: function, ...args: A): Lazy<T>

- - Defined in fn/common.ts:71

  Create a lazy-initialized value.

  #### Type parameters

  - T
  - A: any[]

  #### Parameters

  - factory: function
    - - (...args: A): T

      - #### Parameters

        - Rest ...args: A

        #### Returns T

  - Rest ...args: A

  #### Returns Lazy<T>

### noop

- noop(...args: unknown[]): unknown

- - Defined in fn/common.ts:41

  A function that does nothing.

  #### Parameters

  - Rest ...args: unknown[]

  #### Returns unknown

### property

- property<T, K>(key: K): function
- property<K>(key: K): function

- - Defined in fn/common.ts:33

  Creates a function that returns the property value for the provided key.

  #### Type parameters

  - T: object
  - K: keyof T

  #### Parameters

  - key: K

  #### Returns function

  - - (value: T): T[K]

    - #### Parameters

      - value: T

      #### Returns T[K]

- - Defined in fn/common.ts:35

  Creates a function that returns the property value for the provided key.

  #### Type parameters

  - K: PropertyKey

  #### Parameters

  - key: K

  #### Returns function

  - - <T>(value: T): K extends keyof T ? T[K] : unknown

    - #### Type parameters

      - T: object

      #### Parameters

      - value: T

      #### Returns K extends keyof T ? T[K] : unknown

### thunk

- thunk<T>(value: T): function

- - Defined in fn/common.ts:28

  Creates a function that always returns the provided value.

  #### Type parameters

  - T

  #### Parameters

  - value: T

  #### Returns function

  - - (): T

    - #### Returns T

### tuple

- tuple<A>(...args: A): A

- - Defined in fn/common.ts:76

  Makes a tuple from the provided arguments

  #### Type parameters

  - A: [any, Array]

  #### Parameters

  - Rest ...args: A

  #### Returns A

Generated using TypeDoc