/**
 * @typed/fp/ReaderTask is an extension of fp-ts/ReaderTask with additional
 * type-class instances.
 * @since 0.9.2
 */
import { ChainRec2 } from 'fp-ts/ChainRec';
import * as E from 'fp-ts/Either';
import * as RT from 'fp-ts/ReaderTask';
import { MonadRec2 } from './MonadRec';
import { Provide2, ProvideAll2, ProvideSome2, UseAll2, UseSome2 } from './Provide';
/**
 * @since 0.9.2
 * @category Combinator
 */
export declare const chainRec: <A, R, B>(f: (value: A) => RT.ReaderTask<R, E.Either<A, B>>) => (value: A) => RT.ReaderTask<R, B>;
/**
 * @since 0.9.2
 * @category Instance
 */
export declare const ChainRec: ChainRec2<RT.URI>;
/**
 * @since 0.9.2
 * @category Instance
 */
export declare const MonadRec: MonadRec2<RT.URI>;
/**
 * @since 0.9.2
 * @category Combinator
 */
export declare const useSome: <R1>(provided: R1) => <R2, A>(readerTask: RT.ReaderTask<R1 & R2, A>) => RT.ReaderTask<R2, A>;
/**
 * @since 0.9.2
 * @category Combinator
 */
export declare const provideSome: <R1>(provided: R1) => <R2, A>(readerTask: RT.ReaderTask<R1 & R2, A>) => RT.ReaderTask<R2, A>;
/**
 * @since 0.9.2
 * @category Combinator
 */
export declare const useAll: <R1>(provided: R1) => <A>(readerTask: RT.ReaderTask<R1, A>) => RT.ReaderTask<unknown, A>;
/**
 * @since 0.9.2
 * @category Combinator
 */
export declare const provideAll: <R1>(provided: R1) => <A>(readerTask: RT.ReaderTask<R1, A>) => RT.ReaderTask<unknown, A>;
/**
 * @since 0.9.2
 * @category Instance
 */
export declare const UseSome: UseSome2<RT.URI>;
/**
 * @since 0.9.2
 * @category Instance
 */
export declare const UseAll: UseAll2<RT.URI>;
/**
 * @since 0.9.2
 * @category Instance
 */
export declare const ProvideSome: ProvideSome2<RT.URI>;
/**
 * @since 0.9.2
 * @category Instance
 */
export declare const ProvideAll: ProvideAll2<RT.URI>;
/**
 * @since 0.9.2
 * @category Instance
 */
export declare const Provide: Provide2<RT.URI>;
export * from 'fp-ts/ReaderTask';
//# sourceMappingURL=ReaderTask.d.ts.map