export type DeclarationConstraintOptions = { readonly constraints?: ExtrinsicConstraint[]; }; export type Constraint = IntrinsicConstraint | ExtrinsicConstraint; export type IntrinsicConstraint = { readonly constrain: Constrain; }; export type ExtrinsicConstraint = { readonly description: string; readonly constrain: Constrain; }; export type Constrain = (v: T) => string | undefined | void | true; export declare function applyConstraints(constraints: Constraint[], value: T): void; export declare function extrinsicConstraints(constraints: Constraint[]): ExtrinsicConstraint[]; export declare class ConstraintsError extends Error { readonly errors: Error[]; constructor(errors: Error[]); }