import { Value } from "./Value.js";
import { Comparable } from "./Comparable.js";
import { ExprType } from "../type/ExprType.js";
import { LogicalValue } from "./LogicalValue.js";
export declare class BooleanValue implements Value<boolean>, Comparable<BooleanValue> {
    private readonly booleanValue;
    private static readonly TRUE_VALUE;
    private static readonly FALSE_VALUE;
    private constructor();
    static of(value: boolean): BooleanValue;
    getValue(): boolean;
    getType(): ExprType;
    static true(): BooleanValue;
    static false(): BooleanValue;
    static isBoolean(val: any): val is boolean;
    isTrue(): boolean;
    isFalse(): boolean;
    compareTo(other: BooleanValue): number;
    toString(): string;
    static isBooleanValueType(arg: any): arg is BooleanValueType;
    and<T extends LogicalValue | BooleanValue>(other: T): T;
    or<T extends LogicalValue | BooleanValue>(other: T): T;
    xor<T extends LogicalValue | BooleanValue>(other: T): T;
    implies<T extends LogicalValue | BooleanValue>(other: T): T;
    not(): BooleanValue;
    equals(other: Value<any>): boolean;
}
export type BooleanValueType = {
    booleanValue: boolean;
};
