import type { Ternary } from '../../util/logic';
/**
 * An abstract domain with satisfiability checks for concrete values.
 */
export interface SatisfiableDomain<T> {
    /**
     * Checks whether the current abstract value satisfies a concrete value (i.e. includes a concrete value).
     * @see {@link Ternary} for the returned satisfiability result
     */
    satisfies(value: T): Ternary;
}
/**
 * Represents the different types of numerical comparators for satisfiability checks for an abstract domain.
 */
export declare enum NumericalComparator {
    Equal = 0,
    Less = 1,
    LessOrEqual = 2,
    Greater = 3,
    GreaterOrEqual = 4
}
/**
 * Represents the different types of set comparators for satisfiability checks for an abstract domain.
 */
export declare enum SetComparator {
    Equal = 0,
    Subset = 1,
    SubsetOrEqual = 2
}
