import * as DE from './DataEither';
import * as E from './Env';
import * as EE from './EnvEither';
import * as O from './Option';
import { Progress } from './Progress';
import * as Ref from './Ref';
/**
 * @since 0.12.1
 * @category Model
 */
export interface RefDataEither<R, E, A> extends Ref.Ref<R, DE.DataEither<E, A>> {
}
/**
 * @since 0.12.1
 * @category Combinator
 */
export declare function toNoData<R, E, A>(rd: RefDataEither<R, E, A>): E.Env<R, DE.DataEither<E, A>>;
/**
 * @since 0.12.1
 * @category Combinator
 */
export declare function toLoading<R, E, A>(rd: RefDataEither<R, E, A>): E.Env<R, DE.DataEither<E, A>>;
/**
 * @since 0.12.1
 * @category Combinator
 */
export declare function toRefresh<A>(value: A, progress?: O.Option<Progress>): <R, E>(rd: RefDataEither<R, E, A>) => E.Env<R, DE.DataEither<E, A>>;
/**
 * @since 0.12.1
 * @category Combinator
 */
export declare function toReplete<A>(value: A): <R, E>(rd: RefDataEither<R, E, A>) => E.Env<R, DE.DataEither<E, A>>;
/**
 * @since 0.12.1
 * @category Combinator
 */
export declare function loadEnv<E1, A>(env: E.Env<E1, A>): <R, E2>(rd: RefDataEither<R, E2, A>) => E.Env<R & E1, DE.DataEither<E2, A>>;
/**
 * @since 0.12.1
 * @category Combinator
 */
export declare function loadEnvEither<R1, E, A>(env: EE.EnvEither<R1, E, A>): <R2>(rd: RefDataEither<R2, E, A>) => E.Env<R2 & R1, DE.DataEither<E, A>>;
/**
 * @since 0.12.1
 * @category Combinator
 */
export declare const map: <A, B>(f: (value: A) => B) => <R, E>(ref: RefDataEither<R, E, A>) => Ref.Ref<R, DE.DataEither<E, A>, DE.DataEither<E, B>>;
//# sourceMappingURL=RefDataEither.d.ts.map