export declare enum ConstraintKind { Falsy = 0, Truthy = 1 } export interface Constraint { kind: ConstraintKind; } export interface TruthyConstraint extends Constraint { kind: ConstraintKind.Truthy; } export interface FalsyConstraint extends Constraint { kind: ConstraintKind.Falsy; } export declare function isTruthyConstraint(constraint: Constraint): constraint is TruthyConstraint; export declare function isFalsyConstraint(constraint: Constraint): constraint is FalsyConstraint; export declare function truthyConstraint(): TruthyConstraint; export declare function falsyConstraint(): FalsyConstraint; export declare function isEqualConstraints(a: Constraint, b: Constraint): boolean; export declare function constrain(list: Constraint[], candidate: Constraint): Constraint[] | undefined; export declare function isTruthy(constraints: Constraint[]): boolean; export declare function isFalsy(constraints: Constraint[]): boolean;