import { HKT, Type, URIS } from 'fp-ts/lib/HKT';
import { Concattable, Pushable, Predicate, Filterable, Function1, Functor } from './helper-types';
/**
* Calls `concat` on an array or a concattable. Also typed to work well with tuples.
*
* @export
* @template Input
* @template A
* @param {[A]} arr
* @param {Input} item
* @returns {[A,Input]}
*/
export declare function concat(arr: [A], item: Input): [A, Input];
export declare function concat(arr: [A, B], item: Input): [A, B, Input];
export declare function concat(arr: [A, B, C], item: Input): [A, B, C, Input];
export declare function concat(arr: [A, B, C, D], item: Input): [A, B, C, D, Input];
export declare function concat(arr: [A, B, C, D, E], item: Input): [A, B, C, D, E, Input];
export declare function concat(arr: [A, B, C, D, E, F], item: Input): [A, B, C, D, E, F, Input];
export declare function concat(arr: [A, B, C, D, E, F, G], item: Input): [A, B, C, D, E, F, G, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H], item: Input): [A, B, C, D, E, F, G, H, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I], item: Input): [A, B, C, D, E, F, G, H, I, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J], item: Input): [A, B, C, D, E, F, G, H, I, J, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L], item: Input): [A, B, C, D, E, F, G, H, I, J, L, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M], item: Input): [A, B, C, D, E, F, G, H, I, J, L, M, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N], item: Input): [A, B, C, D, E, F, G, H, I, J, L, M, N, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O], item: Input): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P], item: Input): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q], item: Input): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R], item: Input): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S], item: Input): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T], item: Input): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U], item: Input): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V], item: Input): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W], item: Input): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X], item: Input): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y], item: Input): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z], item: Input): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, Input];
export declare function concat(arr: [A]): (item: Input) => [A, Input];
export declare function concat(arr: [A, B]): (item: Input) => [A, B, Input];
export declare function concat(arr: [A, B, C]): (item: Input) => [A, B, C, Input];
export declare function concat(arr: [A, B, C, D]): (item: Input) => [A, B, C, D, Input];
export declare function concat(arr: [A, B, C, D, E]): (item: Input) => [A, B, C, D, E, Input];
export declare function concat(arr: [A, B, C, D, E, F]): (item: Input) => [A, B, C, D, E, F, Input];
export declare function concat(arr: [A, B, C, D, E, F, G]): (item: Input) => [A, B, C, D, E, F, G, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H]): (item: Input) => [A, B, C, D, E, F, G, H, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I]): (item: Input) => [A, B, C, D, E, F, G, H, I, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J]): (item: Input) => [A, B, C, D, E, F, G, H, I, J, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L]): (item: Input) => [A, B, C, D, E, F, G, H, I, J, L, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M]): (item: Input) => [A, B, C, D, E, F, G, H, I, J, L, M, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N]): (item: Input) => [A, B, C, D, E, F, G, H, I, J, L, M, N, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O]): (item: Input) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P]): (item: Input) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q]): (item: Input) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R]): (item: Input) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S]): (item: Input) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T]): (item: Input) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U]): (item: Input) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V]): (item: Input) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W]): (item: Input) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X]): (item: Input) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y]): (item: Input) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Input];
export declare function concat(arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z]): (item: Input) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, Input];
export declare function concat(acc: ConcatArray, item: A): ConcatArray;
export declare function concat(acc: ConcatArray): (item: A) => ConcatArray;
export declare function concat(acc: Concattable, item: A): Concattable;
export declare function concat(acc: Concattable): (item: A) => Concattable;
export declare function concat(arr: A[], item: A): A[];
export declare function concat(arr: A[]): (item: A) => A[];
export declare function concat(arr: A): (item: B) => (A & B)[];
/**
* Flips the order of parameters of `concat` which calls `concat`
* on an array or a concattable. Also typed to work well with tuples.
* @export
* @template Input
* @template A
* @param {Input} item
* @param {[A]} arr
* @returns {[A,Input]}
*/
export declare function flipConcat(item: Input, arr: [A]): [A, Input];
export declare function flipConcat(item: Input, arr: [A, B]): [A, B, Input];
export declare function flipConcat(item: Input, arr: [A, B, C]): [A, B, C, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D]): [A, B, C, D, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E]): [A, B, C, D, E, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F]): [A, B, C, D, E, F, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G]): [A, B, C, D, E, F, G, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H]): [A, B, C, D, E, F, G, H, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H, I]): [A, B, C, D, E, F, G, H, I, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H, I, J]): [A, B, C, D, E, F, G, H, I, J, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H, I, J, L]): [A, B, C, D, E, F, G, H, I, J, L, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H, I, J, L, M]): [A, B, C, D, E, F, G, H, I, J, L, M, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H, I, J, L, M, N]): [A, B, C, D, E, F, G, H, I, J, L, M, N, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O]): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P]): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q]): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R]): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S]): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T]): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U]): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V]): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W]): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X]): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y]): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Input];
export declare function flipConcat(item: Input, arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z]): [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, Input];
export declare function flipConcat(item: Input): (arr: [A]) => [A, Input];
export declare function flipConcat(item: Input): (arr: [A, B]) => [A, B, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C]) => [A, B, C, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D]) => [A, B, C, D, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E]) => [A, B, C, D, E, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F]) => [A, B, C, D, E, F, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G]) => [A, B, C, D, E, F, G, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H]) => [A, B, C, D, E, F, G, H, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H, I]) => [A, B, C, D, E, F, G, H, I, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H, I, J]) => [A, B, C, D, E, F, G, H, I, J, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H, I, J, L]) => [A, B, C, D, E, F, G, H, I, J, L, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H, I, J, L, M]) => [A, B, C, D, E, F, G, H, I, J, L, M, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H, I, J, L, M, N]) => [A, B, C, D, E, F, G, H, I, J, L, M, N, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O]) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P]) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q]) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R]) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S]) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T]) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U]) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V]) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W]) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X]) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y]) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Input];
export declare function flipConcat(item: Input): (arr: [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z]) => [A, B, C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, Input];
export declare function flipConcat(item: A, acc: ConcatArray): ConcatArray;
export declare function flipConcat(item: A): (acc: ConcatArray) => ConcatArray;
export declare function flipConcat(item: A, acc: Concattable): Concattable;
export declare function flipConcat(item: A): (acc: Concattable) => Concattable;
export declare function flipConcat(item: A, arr: A[]): A[];
export declare function flipConcat(item: A): (arr: A[]) => A[];
export declare function flipConcat(item: B): (arr: A) => (A & B)[];
declare module 'fp-ts/lib/HKT' {
interface URI2HKT {
'Array': Array;
}
}
export declare function push(acc: A[]): (a: A) => A;
export declare function push(acc: Pushable): (item: A) => Pushable;
/**
* Takes a function and a filterable and returns said filterable after transformation
* (a -> bool) -> c a -> c a
*/
export declare function filter(fn: Predicate, functor: HKT & Filterable): Type;
export declare function filter(fn: Predicate): (functor: HKT & Filterable) => Type;
/**
* Takes a function and a functor and lifts function over values in functor
* (a -> b) -> f a -> f b
*/
export declare function map(fn: Function1, functor: HKT & Functor): Type;
export declare function map(fn: Function1): (functor: HKT & Functor) => Type;