import * as gracely from "gracely"; import * as selectively from "selectively"; import { Functions } from "../../Functions"; import { Operation } from "../Operation"; import { Action } from "./Action"; export interface Rule { action: Action; operation: Operation; condition: selectively.Rule; verification: boolean; } export declare namespace Rule { function is(value: any | Rule): value is Rule; function stringify(rule: Rule): string; function parse(rule: string, verification?: "verified" | "unavailable" | "rejected", functions?: Functions): Rule | undefined; function apply(value: any, rule: Rule): boolean; function toFlaw(failed: Rule[]): gracely.Flaw & { type: "verification required" | "rule violation"; }; }