interface ImmutableArrayPolyfills extends MsftSme.NumberMap { /** * Deprecated. Please use MsftSme.union instead. */ concatUnique(other: ImmutableArray, predicate?: (value1: T, value2: T) => boolean): T[]; /** * Deprecated. Please use MsftSme.find instead. */ first(predicate?: (value: T) => boolean, startIndex?: number): T; /** * Deprecated. Please use MsftSme.findIndex instead. */ firstIndex(predicate?: (value: T) => boolean, startIndex?: number): number; /** * Deprecated. Please use MsftSme.last instead. */ last(): any; /** * Deprecated. Please use MsftSme.mapMany instead. */ mapMany(selector: (source: T) => ImmutableArray): U[]; /** * Deprecated. Please use MsftSme.stableSort instead. */ stableSort(compare: (a: T, b: T) => number): T[]; /** * Deprecated. Please use MsftSme.unique instead. */ unique(predicate?: (value1: T, value2: T) => boolean): T[]; } interface ArrayPolyfills extends ImmutableArrayPolyfills { /** * Deprecated. Please use MsftSme.union instead. */ concatUnique(other: T[], predicate?: (value1: T, value2: T) => boolean): T[]; /** * Deprecated. Please use MsftSme.remove instead. */ remove(item: T): T[]; } interface Array extends ArrayPolyfills { } /** * An immutable array. */ interface ImmutableArray extends ImmutableArrayPolyfills { toString(): string; toLocaleString(): string; concat(...items: T[][]): T[]; concat(...items: T[]): T[]; join(separator?: string): string; slice(start?: number, end?: number): T[]; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(callbackfn: (value: T, index: number, array: ImmutableArray) => boolean, thisArg?: any): boolean; some(callbackfn: (value: T, index: number, array: ImmutableArray) => boolean, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: ImmutableArray) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: ImmutableArray) => U, thisArg?: any): U[]; filter(callbackfn: (value: T, index: number, array: ImmutableArray) => boolean, thisArg?: any): T[]; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: ImmutableArray) => U, initialValue: U): U; } /** * Returns a negative, zero or a positive number if its first * parameter is smaller, equal or greater than its second parameter * respectively. */ declare type Comparator = (a: T, b: T) => number;