/**
* Boolean algebras are Heyting algebras with the additional constraint that the law of the excluded middle is true
* (equivalently, double-negation is true).
*
* Instances should satisfy the following laws in addition to the `HeytingAlgebra` laws:
*
* - Excluded middle: `a ∨ ¬a <-> 1`
*
* Boolean algebras generalize classical logic: one is equivalent to "true" and zero is equivalent to "false".
*
* @since 2.0.0
*/
import { HeytingAlgebra } from './HeytingAlgebra'
/**
* @category model
* @since 2.0.0
*/
export interface BooleanAlgebra extends HeytingAlgebra {}
/**
* Every boolean algebras has a dual algebra, which involves reversing one/zero as well as join/meet.
*
* @since 2.10.0
*/
export declare const reverse: (B: BooleanAlgebra) => BooleanAlgebra
/**
* @category instances
* @since 2.0.0
*/
export declare const booleanAlgebraVoid: BooleanAlgebra
/**
* Use [`reverse`](#reverse) instead.
*
* @category zone of death
* @since 2.0.0
* @deprecated
*/
export declare const getDualBooleanAlgebra: (B: BooleanAlgebra) => BooleanAlgebra
/**
* Use [`BooleanAlgebra`](./boolean.ts.html#booleanalgebra) instead.
*
* @category zone of death
* @since 2.0.0
* @deprecated
*/
export declare const booleanAlgebraBoolean: BooleanAlgebra
/**
* Use [`getBooleanAlgebra`](./function.ts.html#getbooleanalgebra) instead.
*
* @category zone of death
* @since 2.0.0
* @deprecated
*/
export declare const getFunctionBooleanAlgebra: (
B: BooleanAlgebra
) => () => BooleanAlgebra<(a: A) => B>