import type * as P from "@principia/prelude";
import type { Option, URI, V } from "./model";
/**
* ```haskell
* alt_ :: Alt f => (f a, (() -> f a)) -> f a
* ```
*
* Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to types of kind `* -> *`.
*
* @category Alt
* @since 1.0.0
*/
export declare const alt_: (fa: Option, that: () => Option) => Option;
/**
* ```haskell
* alt :: Alt f => (() -> f a) -> f a -> f a
* ```
*
* Identifies an associative operation on a type constructor. It is similar to `Semigroup`, except that it applies to types of kind `* -> *`.
*
* @category Alt
* @since 1.0.0
*/
export declare const alt: (that: () => Option) => (fa: Option) => Option;
export declare const Alt: P.Alt<[URI], V>;
//# sourceMappingURL=alt.d.ts.map