import { IEnumerable } from "../types"

/* eslint-disable @typescript-eslint/naming-convention */

/**
 * Array backed Enumerable
 */
export class ArrayEnumerable<TSource> extends Array<TSource> {

}

/**
 * Workaround
 * @private
 */
export interface ArrayEnumerable<TSource> extends IEnumerable<TSource> {
    reverse(): ArrayEnumerable<TSource>
    concat(items: IEnumerable<TSource>): IEnumerable<TSource>
    concat(...items: readonly TSource[]): ArrayEnumerable<TSource>
    // eslint-disable-next-line @typescript-eslint/array-type
    concat(...items: Array<TSource | ReadonlyArray<TSource>>): ArrayEnumerable<TSource>
}

import { IEnumerable } from "../types"

/* eslint-disable @typescript-eslint/naming-convention */

/**
 * Array backed Enumerable
 */
export class ArrayEnumerable<TSource> extends Array<TSource> {

}

/**
 * Workaround
 * @private
 */
export interface ArrayEnumerable<TSource> extends IEnumerable<TSource> {
    reverse(): ArrayEnumerable<TSource>
    concat(items: IEnumerable<TSource>): IEnumerable<TSource>
    concat(...items: ConcatArray<TSource>[]): ArrayEnumerable<TSource>
    concat(...items: (TSource | ConcatArray<TSource>)[]): ArrayEnumerable<TSource>
}
Change Contact Definition for Array Enumerable
Change Contact Definition for Array Enumerable
