import { Value } from "./Value.js";
import { ExprType } from "../type/ExprType.js";
import { BooleanValue } from "./BooleanValue.js";
import { Comparable } from "./Comparable.js";
export type Logical = boolean | "UNKNOWN";
export declare class LogicalValue implements Value<Logical>, Comparable<LogicalValue> {
    static readonly UNKNOWN_VALUE = "UNKNOWN";
    private readonly logicalValue;
    private static readonly LOGICAL_VALUE_TRUE;
    private static readonly LOGICAL_VALUE_FALSE;
    private static readonly LOGICAL_VALUE_UNKNOWN;
    private constructor();
    static true(): LogicalValue;
    static false(): LogicalValue;
    static unknown(): LogicalValue;
    static of(value: Logical): LogicalValue;
    getValue(): Logical;
    isTrue(): boolean;
    isFalse(): boolean;
    isUnknown(): boolean;
    static isUnknown(val: any): boolean;
    static isLogical(val: any): val is Logical;
    and(other: LogicalValue | BooleanValue): LogicalValue;
    or(other: LogicalValue | BooleanValue): LogicalValue;
    xor(other: LogicalValue | BooleanValue): LogicalValue;
    implies(other: LogicalValue | BooleanValue): LogicalValue;
    not(): LogicalValue;
    equals(other: Value<any>): boolean;
    getType(): ExprType;
    compareTo(other: LogicalValue): number;
    toString(): string;
    static isLogicalValueType(arg: any): arg is LogicalValue;
}
