/**
 * RefArray is a collection of helpers for working with Refs that manage an array.
 * @since 0.11.0
 */
import { Endomorphism } from 'fp-ts/Endomorphism';
import { Eq } from 'fp-ts/Eq';
import { Ord } from 'fp-ts/Ord';
import { Predicate } from 'fp-ts/Predicate';
import * as E from './Env';
import * as Ref from './Ref';
/**
 * RefArray is an abstraction of Refs that will track an array of values.
 * @since 0.11.0
 * @category Model
 */
export interface RefArray<E, A> extends Ref.Ref<E, readonly A[]> {
}
/**
 * @since 0.11.0
 * @category Combinator
 */
export declare const append: <A>(value: A) => <E>(ra: RefArray<E, A>) => E.Env<E, readonly A[]>;
/**
 * @since 0.12.0
 * @category Combinator
 */
export declare const concat: <A>(end: readonly A[]) => <E>(ra: RefArray<E, A>) => E.Env<E, readonly A[]>;
/**
 * @since 0.14.0
 * @category Combinator
 */
export declare const deleteAt: (index: number) => <E, A>(ra: RefArray<E, A>) => E.Env<E, readonly A[]>;
/**
 * @since 0.11.0
 * @category Combinator
 */
export declare const filter: <A>(p: Predicate<A>) => <E>(ra: RefArray<E, A>) => E.Env<E, readonly A[]>;
/**
 * @since 0.11.0
 * @category Combinator
 */
export declare const insertAt: <A>(index: number, value: A) => <E>(ra: RefArray<E, A>) => E.Env<E, readonly A[]>;
/**
 * @since 0.11.0
 * @category Combinator
 */
export declare const modifyAt: <A>(index: number, f: Endomorphism<A>) => <E>(ra: RefArray<E, A>) => E.Env<E, readonly A[]>;
/**
 * @since 0.11.0
 * @category Combinator
 */
export declare const prepend: <A>(value: A) => <E>(ra: RefArray<E, A>) => E.Env<E, readonly A[]>;
/**
 * @since 0.11.0
 * @category Combinator
 */
export declare const reverse: <E, A>(ra: RefArray<E, A>) => E.Env<E, readonly A[]>;
/**
 * @since 0.11.0
 * @category Combinator
 */
export declare const rotate: (n: number) => <E, A>(ra: RefArray<E, A>) => E.Env<E, readonly A[]>;
/**
 * @since 0.11.0
 * @category Combinator
 */
export declare const sort: <A>(O: Ord<A>) => <E>(ra: RefArray<E, A>) => E.Env<E, readonly A[]>;
/**
 * @since 0.11.0
 * @category Combinator
 */
export declare const sortBy: <A>(O: readonly Ord<A>[]) => <E>(ra: RefArray<E, A>) => E.Env<E, readonly A[]>;
/**
 * @since 0.11.0
 * @category Combinator
 */
export declare const uniq: <A>(Eq: Eq<A>) => <E>(ra: RefArray<E, A>) => E.Env<E, readonly A[]>;
/**
 * @since 0.11.0
 * @category Combinator
 */
export declare const updateAt: <A>(index: number, a: A) => <E>(ra: RefArray<E, A>) => E.Env<E, readonly A[]>;
/**
 * @since 0.11.0
 * @category Combinator
 */
export declare const endoMap: <A>(f: Endomorphism<A>) => <E>(ra: RefArray<E, A>) => E.Env<E, readonly A[]>;
//# sourceMappingURL=RefArray.d.ts.map