import { Node } from '../../../models/Node';
import { ValidationRule } from '../../ValidationRule';
import { ValidationRuleMetaData } from '../../ValidationRuleMetaData';
/**
 * Constructor.
 * @param {ValidationRuleMetaData} ruleInfo
 * @class
 * @extends ValidationRule
 * @author eric.wittmann@gmail.com
 */
export declare abstract class RequiredPropertyValidationRule extends ValidationRule {
    constructor(ruleInfo: ValidationRuleMetaData);
    /**
     * Called when a required property is missing.
     * @param {Node} node
     * @param {string} propertyName
     * @param {*} messageParams
     */
    requireProperty(node: Node, propertyName: string, messageParams: any): void;
    /**
     * Called when a conditionally required property is missing.
     * @param {Node} node
     * @param {string} propertyName
     * @param {string} dependentPropertyName
     * @param {*} dependentPropertyExpectedValue
     * @param {*} messageParams
     */
    requirePropertyWhen(node: Node, propertyName: string, dependentPropertyName: string, dependentPropertyExpectedValue: any, messageParams: any): void;
}
