import { Mapping } from "./Mapping"; /** * Style of logical composition */ export declare enum PredicateMappingCompositionStyle { And = "and", Or = "or", Not = "not" } /** * Mapping to a boolean */ export interface PredicateMapping extends Mapping { /** * If this predicate has internal structure, * the components and how they are applied. * For internal and tooling use. */ readonly structure?: { components: Array>; readonly compositionStyle: PredicateMappingCompositionStyle; }; } /** * Implemented by types whose behavior is potentially explicable by a single PredicateMapping */ export interface Predicated { /** * The test for the contribution. Contributions may be * applied in various ways. */ test?: PredicateMapping; } /** * Function that can visit a PredicateMappings. * @return whether to visit the mapping's subcomponents, if any */ export declare type PredicateMappingVisitor = (pm: PredicateMapping) => boolean; /** * Visit the PredicateMappings, returning whether to continue * @param pm predicate mapping to visit. Always visits root, * and any subcomponents as long as the visitor returns true * @param v visitor * @return {boolean} whether to visit the mapping's structure, if any */ export declare function visitPredicateMappings(pm: PredicateMapping, v: PredicateMappingVisitor): void; //# sourceMappingURL=PredicateMapping.d.ts.map