import { IDetachable } from "./IDetachable"; import { IDisposable } from "./IDisposable"; export interface IList extends IDisposable { Get(itemIndex: number): TItem; First(): TItem; Last(): TItem; Add(item: TItem): void; InsertAt(index: number, item: TItem): void; RemoveFirst(): TItem; RemoveLast(): TItem; RemoveAt(index: number): TItem; Remove(index: number, count: number): TItem[]; Clear(): void; Length(): number; OnAdded(addedCallback: () => void): IDetachable; OnRemoved(removedCallback: () => void): IDetachable; OnDisposed(disposedCallback: () => void): IDetachable; Join(seperator?: string): string; ToArray(): TItem[]; Any(callback?: (item: TItem, index: number) => boolean): boolean; All(callback: (item: TItem) => boolean): boolean; ForEach(callback: (item: TItem, index: number) => void): void; Select(callback: (item: TItem, index: number) => T2): List; Where(callback: (item: TItem, index: number) => boolean): List; OrderBy(compareFn: (a: TItem, b: TItem) => number): List; OrderByDesc(compareFn: (a: TItem, b: TItem) => number): List; Clone(): List; Concat(list: List): List; ConcatArray(array: TItem[]): List; } export declare class List implements IList { private list; private subscriptionIdCounter; private addSubscriptions; private removeSubscriptions; private disposedSubscriptions; private disposeReason; constructor(list?: TItem[]); Get: (itemIndex: number) => TItem; First: () => TItem; Last: () => TItem; Add: (item: TItem) => void; InsertAt: (index: number, item: TItem) => void; RemoveFirst: () => TItem; RemoveLast: () => TItem; RemoveAt: (index: number) => TItem; Remove: (index: number, count: number) => TItem[]; Clear: () => void; Length: () => number; OnAdded: (addedCallback: () => void) => IDetachable; OnRemoved: (removedCallback: () => void) => IDetachable; OnDisposed: (disposedCallback: () => void) => IDetachable; Join: (seperator?: string) => string; ToArray: () => TItem[]; Any: (callback?: (item: TItem, index: number) => boolean) => boolean; All: (callback: (item: TItem) => boolean) => boolean; ForEach: (callback: (item: TItem, index: number) => void) => void; Select: (callback: (item: TItem, index: number) => T2) => List; Where: (callback: (item: TItem, index: number) => boolean) => List; OrderBy: (compareFn: (a: TItem, b: TItem) => number) => List; OrderByDesc: (compareFn: (a: TItem, b: TItem) => number) => List; Clone: () => List; Concat: (list: List) => List; ConcatArray: (array: TItem[]) => List; IsDisposed: () => boolean; Dispose: (reason?: string) => void; private ThrowIfDisposed; private TriggerSubscriptions; }