export * from './_types'; import { ConstructorFor, KeyValuePair, Predicate, Selector, Undefinable } from "../Types"; import { IComparer } from '../Comparers/_types'; import { IEnumerable, IEnumerableGroup, IDictionary, IList, ICollection, ISet, IEnumerableOrArray } from './_types'; import { IEnumerator } from '../Enumerators/_types'; export declare class Enumerable { static range(start: number, count: number): IEnumerable; static empty(): IEnumerable; static asArray(enumerableOrArray: IEnumerableOrArray): T[]; static asEnumerable(enumerableOrArray: IEnumerableOrArray): IEnumerable; } export declare abstract class EnumerableBase implements IEnumerable { [Symbol.iterator](): Iterator; abstract getEnumerator(): IEnumerator; append(item: T): IEnumerable; concat(next: IEnumerable): IEnumerable; prepend(item: T): IEnumerable; contains(item: T): boolean; forEach(callback: (value: T, index: number) => boolean | void): void; item(index: number): Undefinable; all(predicate: Predicate): boolean; any(predicate?: Predicate): boolean; average(selector: Selector): number; count(): number; distinct(selector: (a: T) => R): IEnumerable; first(predicate?: Predicate): T; firstOrDefault(predicate?: Predicate): T | null; groupBy(selector: Selector, comparer?: IComparer): IEnumerable>; last(predicate?: Predicate): T; lastOrDefault(predicate?: Predicate): T | null; max(selector: Selector): number; min(selector: Selector): number; ofType(ctor: ConstructorFor): IEnumerable; orderBy(selector: (a: T) => R, comparer?: IComparer): IEnumerable; orderByDescending(selector: (a: T) => R, comparer?: IComparer): IEnumerable; select(selector: Selector): IEnumerable; selectMany(selector: Selector>): IEnumerable; single(predicate?: Predicate): T; singleOrDefault(predicate?: Predicate): T | null; skip(count: number): IEnumerable; split(predicate: Predicate): { pTrue: IEnumerable; pFalse: IEnumerable; }; sum(selector: Selector): number; take(count: number): IEnumerable; where(predicate: Predicate): IEnumerable; toArray(): T[]; toDictionary(keySelector: (a: T) => TKey, valueSelector: (a: T) => TValue): IDictionary; toList(): IList; private internalOrderBy; } export declare class ArrayEnumerable implements IEnumerable { [Symbol.iterator](): Iterator; protected _array: T[]; constructor(array: T[]); /**@inheritDoc */ all(predicate: Predicate): boolean; /**@inheritDoc */ append(item: T): IEnumerable; /**@inheritDoc */ any(predicate?: Predicate | undefined): boolean; /**@inheritDoc */ average(selector: Selector): number; /**@inheritDoc */ concat(next: IEnumerable): IEnumerable; /**@inheritDoc */ contains(item: T): boolean; /**@inheritDoc */ count(): number; /**@inheritDoc */ distinct(selector: Selector): IEnumerable; /**@inheritDoc */ first(predicate?: Predicate): T; /**@inheritDoc */ firstOrDefault(predicate?: Predicate): T | null; /**@inheritDoc */ forEach(callback: (value: T, index: number) => boolean | void): void; /**@inheritDoc */ getEnumerator(): IEnumerator; /**@inheritDoc */ groupBy(keySelector: Selector, comparer?: IComparer): IEnumerable>; /**@inheritDoc */ item(index: number): Undefinable; /**@inheritDoc */ last(predicate?: Predicate): T; /**@inheritDoc */ lastOrDefault(predicate?: Predicate): T | null; /**@inheritDoc */ max(selector: Selector): number; /**@inheritDoc */ min(selector: Selector): number; /**@inheritDoc */ ofType(ctor: ConstructorFor): IEnumerable; /**@inheritDoc */ orderBy(selector: Selector, comparer?: IComparer | undefined): IEnumerable; /**@inheritDoc */ orderByDescending(selector: Selector, comparer?: IComparer | undefined): IEnumerable; private internalOrderBy; /**@inheritDoc */ prepend(item: T): IEnumerable; /**@inheritDoc */ select(selector: Selector): IEnumerable; /**@inheritDoc */ selectMany(selector: Selector>): IEnumerable; /**@inheritDoc */ single(predicate?: Predicate): T; /**@inheritDoc */ singleOrDefault(predicate?: Predicate): T | null; /**@inheritDoc */ skip(count: number): IEnumerable; /**@inheritDoc */ split(predicate: Predicate): { pTrue: IEnumerable; pFalse: IEnumerable; }; /**@inheritDoc */ sum(selector: Selector): number; /**@inheritDoc */ take(count: number): IEnumerable; /**@inheritDoc */ toArray(): T[]; /**@inheritDoc */ toDictionary(keySelector: (a: T) => TKey, valueSelector: (a: T) => TValue): IDictionary; /**@inheritDoc */ toList(): IList; /**@inheritDoc */ where(predicate: Predicate): IEnumerable; } export declare class Collection extends ArrayEnumerable implements ICollection, IEnumerable { constructor(enumerableOrArray?: IEnumerableOrArray); get isReadOnly(): boolean; add(obj: T): void; get length(): number; clear(): void; copyTo(array: T[], arrayIndex: number): void; remove(item: T): boolean; } export declare class Dictionary extends EnumerableBase> implements IDictionary, ICollection>, IEnumerable> { #private; readonly isReadOnly: boolean; constructor(enumerableOrArray?: IEnumerableOrArray>); get length(): number; get keys(): TKey[]; get values(): TValue[]; add(keyValuePair: KeyValuePair): void; addKeyValue(key: TKey, value: TValue): void; itemByKey(key: TKey): TValue; containsKey(key: TKey): boolean; removeByKey(key: TKey): boolean; tryGetValue(key: TKey): { value?: TValue; success: boolean; }; clear(): void; remove(item: KeyValuePair): boolean; contains(item: KeyValuePair): boolean; copyTo(array: KeyValuePair[], arrayIndex: number): void; getEnumerator(): IEnumerator>; } export declare class EnumeratorEnumerable extends EnumerableBase { #private; constructor(enumerator: IEnumerator); getEnumerator(): IEnumerator; } export declare class LinkedList extends EnumerableBase implements ICollection, IEnumerable { #private; constructor(enumerableOrArray?: IEnumerableOrArray); append(item: T): IEnumerable; concat(next: IEnumerable): IEnumerable; prepend(item: T): IEnumerable; get length(): number; get isReadOnly(): boolean; add(item: T): void; clear(): void; contains(item: T): boolean; copyTo(array: T[], arrayIndex: number): void; remove(item: T): boolean; forEach(callback: (value: T, index: number) => boolean | void): void; getEnumerator(): IEnumerator; item(index: number): Undefinable; ofType(ctor: new (...args: unknown[]) => N): IEnumerable; toArray(): T[]; toDictionary(keySelector: (a: T) => TKey, valueSelector: (a: T) => TValue): IDictionary; toList(): IList; /** * Traverse the collection, return false in the callback to break. return true or undefined to continue. * @param node * @param callback */ private traverse; } export declare class List extends Collection implements IList, ICollection, IEnumerable { addRange(enumerableOrArray: IEnumerableOrArray): void; find(obj: T, isEquivilent?: boolean): T | undefined; indexOf(value: T, isEquivilent?: boolean): number | undefined; insert(obj: T, index: number): void; prepend(obj: T): IEnumerable; prependRange(enumerableOrArray: IEnumerableOrArray): void; removeAt(index: number): void; sort(comparer?: IComparer): void; } export default class Set extends Collection implements ISet, ICollection, IEnumerable { constructor(enumerable?: IEnumerable); get length(): number; get isReadOnly(): boolean; append(item: T): IEnumerable; concat(next: IEnumerable): IEnumerable; prepend(item: T): IEnumerable; exceptWith(enumerable: IEnumerable): void; intersectWith(enumerable: IEnumerable): void; isSubsetOf(enumerable: IEnumerable): boolean; isSupersetOf(enumerable: IEnumerable): boolean; overlaps(enumerable: IEnumerable): boolean; setEquals(enumerable: IEnumerable): boolean; symmetricExceptWith(enumerable: IEnumerable): void; unionWith(enumerable: IEnumerable): void; /** * Adds an item to the ICollection. * @param item The object to add to the ICollection. * @throws {ArgumentException} When the item is already in the collection. */ add(item: T): void; clear(): void; contains(item: T): boolean; copyTo(array: T[], arrayIndex: number): void; remove(item: T): boolean; forEach(callback: (value: T, index: number) => boolean | void): void; getEnumerator(): IEnumerator; item(index: number): Undefinable; ofType(ctor: new (...args: unknown[]) => N): IEnumerable; toArray(): T[]; toDictionary(keySelector: (a: T) => TKey, valueSelector: (a: T) => TValue): IDictionary; toList(): IList; }