/**
 * Various functions to aid in working with booleans. You may also find the
 * `Predicate` module relevant.
 *
 * @since 0.1.0
 */
import type * as Bounded_ from "fp-ts/Bounded";
import type { Endomorphism } from "fp-ts/Endomorphism";
type Bounded<A> = Bounded_.Bounded<A>;
import type { Enum as _Enum } from "./Enum";
type Enum<A> = _Enum<A>;
/**
 * Invert a boolean.
 *
 * @example
 * import { invert } from 'fp-ts-std/Boolean'
 *
 * assert.strictEqual(invert(true), false)
 * assert.strictEqual(invert(false), true)
 *
 * @category 3 Functions
 * @since 0.4.0
 */
export declare const invert: Endomorphism<boolean>;
/**
 * Returns `true` if both arguments are `true`, else `false`. Equivalent to
 * logical conjunction.
 *
 * @example
 * import { and } from 'fp-ts-std/Boolean'
 *
 * assert.strictEqual(and(true)(true), true)
 * assert.strictEqual(and(true)(false), false)
 *
 * @category 3 Functions
 * @since 0.4.0
 */
export declare const and: (x: boolean) => Endomorphism<boolean>;
/**
 * Returns `true` if one or both arguments are `true`, else `false`. Equivalent
 * to logical disjunction.
 *
 * @example
 * import { or } from 'fp-ts-std/Boolean'
 *
 * assert.strictEqual(or(true)(false), true)
 * assert.strictEqual(or(false)(false), false)
 *
 * @category 3 Functions
 * @since 0.4.0
 */
export declare const or: (x: boolean) => Endomorphism<boolean>;
/**
 * Returns `true` if one argument is `true` and the other is `false`, else
 * `false`. Equivalent to exclusive logical disjunction.
 *
 * @example
 * import { xor } from 'fp-ts-std/Boolean'
 *
 * assert.strictEqual(xor(true)(false), true)
 * assert.strictEqual(xor(true)(true), false)
 *
 * @category 3 Functions
 * @since 0.4.0
 */
export declare const xor: (x: boolean) => Endomorphism<boolean>;
/**
 * A `Bounded` instance for booleans.
 *
 * @example
 * import { Bounded } from 'fp-ts-std/Boolean'
 *
 * assert.strictEqual(Bounded.top, true)
 * assert.strictEqual(Bounded.bottom, false)
 *
 * @category 1 Typeclass Instances
 * @since 0.17.0
 */
export declare const Bounded: Bounded<boolean>;
/**
 * An `Enum` instance for booleans.
 *
 * @example
 * import * as O from 'fp-ts/Option'
 * import { Enum } from 'fp-ts-std/Boolean'
 *
 * assert.deepStrictEqual(Enum.succ(false), O.some(true))
 * assert.deepStrictEqual(Enum.succ(true), O.none)
 *
 * assert.deepStrictEqual(Enum.pred(true), O.some(false))
 * assert.deepStrictEqual(Enum.pred(false), O.none)
 *
 * @category 1 Typeclass Instances
 * @since 0.17.0
 */
export declare const Enum: Enum<boolean>;
export {};
//# sourceMappingURL=Boolean.d.ts.map