import { int32 } from "./Int32.js"; import { Option } from "./Option.js"; import { IComparer, IEqualityComparer } from "./Util.js"; export declare function append(array1: T[], array2: T[], cons?: any): T[]; export declare function filter(predicate: ((arg0: T) => boolean), array: T[]): T[]; export declare function fill(target: T[], targetIndex: int32, count: int32, value: T): T[]; export declare function getSubArray(array: T[], start: int32, count: int32): T[]; export declare function last(array: T[]): T; export declare function tryLast(array: T[]): Option; export declare function mapIndexed(f: ((arg0: int32, arg1: T) => U), source: T[], cons?: any): U[]; export declare function map(f: ((arg0: T) => U), source: T[], cons?: any): U[]; export declare function mapIndexed2(f: ((arg0: int32, arg1: T1, arg2: T2) => U), source1: T1[], source2: T2[], cons?: any): U[]; export declare function map2(f: ((arg0: T1, arg1: T2) => U), source1: T1[], source2: T2[], cons?: any): U[]; export declare function mapIndexed3(f: ((arg0: int32, arg1: T1, arg2: T2, arg3: T3) => U), source1: T1[], source2: T2[], source3: T3[], cons?: any): U[]; export declare function map3(f: ((arg0: T1, arg1: T2, arg2: T3) => U), source1: T1[], source2: T2[], source3: T3[], cons?: any): U[]; export declare function mapFold(mapping: ((arg0: State, arg1: T) => [Result, State]), state: State, array: T[], cons?: any): [Result[], State]; export declare function mapFoldBack(mapping: ((arg0: T, arg1: State) => [Result, State]), array: T[], state: State, cons?: any): [Result[], State]; export declare function indexed(source: T[]): [int32, T][]; export declare function truncate(count: int32, array: T[]): T[]; export declare function concat(arrays: Iterable, cons?: any): T[]; export declare function collect(mapping: ((arg0: T) => U[]), array: T[], cons?: any): U[]; export declare function where<$a>(predicate: ((arg0: $a) => boolean), array: $a[]): $a[]; export declare function indexOf(array: T[], item_1: T, start: Option, count: Option, eq: IEqualityComparer): int32; export declare function contains(value: T, array: T[], eq: IEqualityComparer): boolean; export declare function empty<$a>(cons: any): $a[]; export declare function singleton(value: T, cons?: any): T[]; export declare function initialize(count: int32, initializer: ((arg0: int32) => T), cons?: any): T[]; export declare function pairwise(array: T[]): [T, T][]; export declare function replicate(count: int32, initial: T, cons?: any): T[]; export declare function copy(array: T[]): T[]; export declare function copyTo(source: T[], sourceIndex: int32, target: T[], targetIndex: int32, count: int32): void; export declare function reverse(array: T[]): T[]; export declare function scan(folder: ((arg0: State, arg1: T) => State), state: State, array: T[], cons?: any): State[]; export declare function scanBack(folder: ((arg0: T, arg1: State) => State), array: T[], state: State, cons?: any): State[]; export declare function skip(count: int32, array: T[], cons?: any): T[]; export declare function skipWhile(predicate: ((arg0: T) => boolean), array: T[], cons?: any): T[]; export declare function take(count: int32, array: T[], cons?: any): T[]; export declare function takeWhile(predicate: ((arg0: T) => boolean), array: T[], cons?: any): T[]; export declare function addInPlace(x: T, array: T[]): void; export declare function addRangeInPlace(range: Iterable, array: T[]): void; export declare function insertRangeInPlace(index: int32, range: Iterable, array: T[]): void; export declare function removeInPlace(item_1: T, array: T[], eq: IEqualityComparer): boolean; export declare function removeAllInPlace(predicate: ((arg0: T) => boolean), array: T[]): int32; export declare function partition(f: ((arg0: T) => boolean), source: T[], cons?: any): [T[], T[]]; export declare function find(predicate: ((arg0: T) => boolean), array: T[]): T; export declare function tryFind(predicate: ((arg0: T) => boolean), array: T[]): Option; export declare function findIndex(predicate: ((arg0: T) => boolean), array: T[]): int32; export declare function tryFindIndex(predicate: ((arg0: T) => boolean), array: T[]): Option; export declare function pick<$a, $b>(chooser: ((arg0: $a) => Option<$b>), array: $a[]): $b; export declare function tryPick<$a, $b>(chooser: ((arg0: $a) => Option<$b>), array: $a[]): Option<$b>; export declare function findBack<$a>(predicate: ((arg0: $a) => boolean), array: $a[]): $a; export declare function tryFindBack<$a>(predicate: ((arg0: $a) => boolean), array: $a[]): Option<$a>; export declare function findLastIndex<$a>(predicate: ((arg0: $a) => boolean), array: $a[]): int32; export declare function findIndexBack<$a>(predicate: ((arg0: $a) => boolean), array: $a[]): int32; export declare function tryFindIndexBack<$a>(predicate: ((arg0: $a) => boolean), array: $a[]): Option; export declare function choose(chooser: ((arg0: T) => Option), array: T[], cons?: any): U[]; export declare function foldIndexed(folder: ((arg0: int32, arg1: State, arg2: T) => State), state: State, array: T[]): State; export declare function fold(folder: ((arg0: State, arg1: T) => State), state: State, array: T[]): State; export declare function iterate(action: ((arg0: T) => void), array: T[]): void; export declare function iterateIndexed(action: ((arg0: int32, arg1: T) => void), array: T[]): void; export declare function iterate2(action: ((arg0: T1, arg1: T2) => void), array1: T1[], array2: T2[]): void; export declare function iterateIndexed2(action: ((arg0: int32, arg1: T1, arg2: T2) => void), array1: T1[], array2: T2[]): void; export declare function isEmpty(array: T[]): boolean; export declare function forAll(predicate: ((arg0: T) => boolean), array: T[]): boolean; export declare function permute(f: ((arg0: int32) => int32), array: T[]): T[]; export declare function setSlice(target: T[], lower: Option, upper: Option, source: T[]): void; export declare function sortInPlaceBy(projection: ((arg0: a) => b), xs: a[], comparer: IComparer): void; export declare function sortInPlace(xs: T[], comparer: IComparer): void; export declare function sort(xs: T[], comparer: IComparer): T[]; export declare function sortBy(projection: ((arg0: a) => b), xs: a[], comparer: IComparer): a[]; export declare function sortDescending(xs: T[], comparer: IComparer): T[]; export declare function sortByDescending(projection: ((arg0: a) => b), xs: a[], comparer: IComparer): a[]; export declare function sortWith(comparer: ((arg0: T, arg1: T) => int32), xs: T[]): T[]; export declare function allPairs(xs: T1[], ys: T2[]): [T1, T2][]; export declare function unfold(generator: ((arg0: State) => Option<[T, State]>), state: State): T[]; export declare function unzip<$a, $b>(array: [$a, $b][]): [$a[], $b[]]; export declare function unzip3<$a, $b, $c>(array: [$a, $b, $c][]): [$a[], $b[], $c[]]; export declare function zip(array1: T[], array2: U[]): [T, U][]; export declare function zip3(array1: T[], array2: U[], array3: V[]): [T, U, V][]; export declare function chunkBySize(chunkSize: int32, array: T[]): T[][]; export declare function splitAt(index: int32, array: T[]): [T[], T[]]; export declare function compareWith(comparer: ((arg0: T, arg1: T) => int32), source1: T[], source2: T[]): int32; export declare function compareTo(comparer: ((arg0: T, arg1: T) => int32), source1: T[], source2: T[]): int32; export declare function equalsWith(equals: ((arg0: T, arg1: T) => boolean), array1: T[], array2: T[]): boolean; export declare function exactlyOne(array: T[]): T; export declare function tryExactlyOne(array: T[]): Option; export declare function head(array: T[]): T; export declare function tryHead(array: T[]): Option; export declare function tail(array: T[]): T[]; export declare function item<$a>(index: int32, array: $a[]): $a; export declare function tryItem(index: int32, array: T[]): Option; export declare function foldBackIndexed(folder: ((arg0: int32, arg1: T, arg2: State) => State), array: T[], state: State): State; export declare function foldBack(folder: ((arg0: T, arg1: State) => State), array: T[], state: State): State; export declare function foldIndexed2<$a, $b, $c>(folder: ((arg0: int32, arg1: $a, arg2: $b, arg3: $c) => $a), state: $a, array1: $b[], array2: $c[]): $a; export declare function fold2(folder: ((arg0: State, arg1: T1, arg2: T2) => State), state: State, array1: T1[], array2: T2[]): State; export declare function foldBackIndexed2(folder: ((arg0: int32, arg1: T1, arg2: T2, arg3: State) => State), array1: T1[], array2: T2[], state: State): State; export declare function foldBack2(f: ((arg0: T1, arg1: T2, arg2: State) => State), array1: T1[], array2: T2[], state: State): State; export declare function reduce(reduction: ((arg0: T, arg1: T) => T), array: T[]): T; export declare function reduceBack(reduction: ((arg0: T, arg1: T) => T), array: T[]): T; export declare function forAll2<$a, $b>(predicate: ((arg0: $a, arg1: $b) => boolean), array1: $a[], array2: $b[]): boolean; export declare function existsOffset(predicate_mut: ((arg0: T) => boolean), array_mut: T[], index_mut: int32): boolean; export declare function exists<$a>(predicate: ((arg0: $a) => boolean), array: $a[]): boolean; export declare function existsOffset2<$a, $b>(predicate_mut: ((arg0: $a, arg1: $b) => boolean), array1_mut: $a[], array2_mut: $b[], index_mut: int32): boolean; export declare function exists2<$a, $b>(predicate: ((arg0: $a, arg1: $b) => boolean), array1: $a[], array2: $b[]): boolean; export declare function sum(array: T[], adder: any): T; export declare function sumBy(projection: ((arg0: T) => T2), array: T[], adder: any): T2; export declare function maxBy(projection: ((arg0: a) => b), xs: a[], comparer: IComparer): a; export declare function max(xs: a[], comparer: IComparer): a; export declare function minBy(projection: ((arg0: a) => b), xs: a[], comparer: IComparer): a; export declare function min(xs: a[], comparer: IComparer): a; export declare function average(array: T[], averager: any): T; export declare function averageBy(projection: ((arg0: T) => T2), array: T[], averager: any): T2; export declare function windowed(windowSize: int32, source: T[]): T[][]; export declare function splitInto(chunks: int32, array: T[]): T[][]; export declare function transpose(arrays: Iterable, cons?: any): T[][]; export declare function insertAt(index: int32, y: T, xs: T[], cons?: any): T[]; export declare function insertManyAt(index: int32, ys: Iterable, xs: T[], cons?: any): T[]; export declare function removeAt(index: int32, xs: T[]): T[]; export declare function removeManyAt(index: int32, count: int32, xs: T[]): T[]; export declare function updateAt(index: int32, y: T, xs: T[], cons?: any): T[];