/** @license MIT License (c) copyright 2010-2016 original author or authors */
/**
* a with x prepended
*/
export declare function cons(x: A, a: ArrayLike): A[];
/**
* a with x appended
*/
export declare function append(x: A, a: ArrayLike): A[];
/**
* Concats two `ArrayLike`s
*/
export declare function concat(a: ArrayLike, b: ArrayLike): A[];
/**
* drop first n elements
*/
export declare function drop(n: number, a: A[]): A[];
/**
* drop head element
*/
export declare function tail(a: A[]): A[];
/**
* duplicate a (shallow duplication)
*/
export declare function copy(a: ArrayLike): A[];
/**
* transform each element with f
*/
export declare function map(f: (a: A) => B, a: ArrayLike): B[];
/**
* accumulate via left-fold
*/
export declare function reduce(f: (a: A, b: B, i: number) => A, z: A, a: ArrayLike): A;
/**
* replace element at index
*/
export declare function replace(x: A, i: number, a: ArrayLike): A[];
/**
* remove element at index
* @throws
*/
export declare function remove(i: number, a: A[]): A[];
/**
* remove all elements matching a predicate
* @deprecated
*/
export declare function removeAll(f: (a: A) => boolean, a: ArrayLike): A[];
/**
* find index of x in a, from the left
*/
export declare function findIndex(x: A, a: ArrayLike): number;
/**
* Return true iff x is array-like
*/
export declare function isArrayLike(x: any): x is ArrayLike;