import * as tFunctor from '../../typeclass/functor';
import { type Of as tOf } from '../../typeclass/of';
import * as tApplicative from '../../typeclass/applicative';
import * as tMonad from '../../typeclass/monad';
import * as tCoMonad from '../../typeclass/comonad';
import * as tFoldable from '../../typeclass/foldable';
import { ArrayFull, TArrayFull } from './arrayfull.types';
export declare const isArrayFull: (arr: A[]) => arr is ArrayFull;
export declare const Of: tOf;
export declare const Functor: tFunctor.Functor;
export declare const Foldable: tFoldable.Foldable;
export declare const NonEmptyFoldable: tFoldable.Foldable1;
export declare const Applicative: tApplicative.Applicative;
export declare const Monad: tMonad.Monad;
export declare const CoMonad: tCoMonad.CoMonad;
export declare const of: (a: A) => ArrayFull;
export declare const map: (args_0: (args_0: A1) => A2) => (args_0: ArrayFull) => ArrayFull;
export declare const flap: (args_0: A1) => (args_0: ArrayFull<(args_0: A1) => B1>) => ArrayFull;
export declare const as: (args_0: A1) => (args_0: ArrayFull) => ArrayFull;
export declare const tap: (args_0: (args_0: A1) => void) => (args_0: ArrayFull) => ArrayFull;
export declare const reduce: (args_0: (args_0: A1, args_1: A2) => A1, args_1: A1) => (args_0: ArrayFull) => A1;
export declare const fold1: (args_0: (args_0: A1, args_1: A1) => A1) => (args_0: ArrayFull) => A1;
export declare const ap: (args_0: ArrayFull) => (args_0: ArrayFull<(args_0: A1) => B1>) => ArrayFull;
export declare const flatMap: (args_0: (args_0: A1) => ArrayFull) => (args_0: ArrayFull) => ArrayFull;
export declare const extract: (args_0: ArrayFull) => A1;
export declare const extend: (args_0: (args_0: ArrayFull) => A2) => (args_0: ArrayFull) => ArrayFull;
export declare const duplicate: (args_0: ArrayFull) => ArrayFull>;
export declare const pluck: (k: K) => (args_0: ArrayFull) => ArrayFull;