import type * as P from "@principia/prelude";
import type { IO, URI, V } from "./model";
/**
* ```haskell
* both_ :: Apply f => (f a, f b) -> f (a, b)
* ```
*
* Applies both `IO`s and collects their results into a tuple
*
* @category Apply
* @since 1.0.0
*/
export declare const both_: (fa: IO, fb: IO) => IO;
/**
* ```haskell
* both :: Apply f => f b -> f a -> f (a, b)
* ```
*
* Applies both `IO`s and collects their results into a tuple
*
* @category Apply
* @since 1.0.0
*/
export declare const both: (fb: IO) => (fa: IO) => IO;
/**
* ```haskell
* pure :: Applicative f => a -> f a
* ```
*
* Lifts a pure expression info an `IO`
*
* @category Applicative
* @since 1.0.0
*/
export declare const pure: (a: A) => IO;
export declare const Applicative: P.Applicative<[URI], V>;
//# sourceMappingURL=applicative.d.ts.map