import { CombinedCompositeVisitor } from '../../combined/visitors/CombinedCompositeVisitor';
import { Document } from '../models/Document';
import { Node } from '../models/Node';
import { ValidationProblem } from '../models/ValidationProblem';
/**
 * Constructor.
 * @param {Document} document
 * @class
 * @extends CombinedCompositeVisitor
 * @author eric.wittmann@gmail.com
 */
export declare class ValidationVisitor extends CombinedCompositeVisitor implements IValidationProblemReporter {
    problems: Array<ValidationProblem>;
    severityRegistry: IValidationSeverityRegistry;
    constructor(document: Document);
    /**
     * Sets the severity registry.
     * @param {*} severityRegistry
     */
    setSeverityRegistry(severityRegistry: IValidationSeverityRegistry): void;
    /**
     * Accessor for the problems.
     * @return {ValidationProblem[]}
     */
    getValidationProblems(): Array<ValidationProblem>;
    /**
     * @see io.apicurio.datamodels.core.validation.IValidationProblemReporter#report(io.apicurio.datamodels.core.validation.ValidationRuleMetaData, io.apicurio.datamodels.core.models.Node, java.lang.String, java.lang.String)
     * @param {ValidationRuleMetaData} ruleInfo
     * @param {Node} node
     * @param {string} property
     * @param {string} message
     */
    report(ruleInfo: ValidationRuleMetaData, node: Node, property: string, message: string): void;
}
import { ValidationRuleMetaData } from './ValidationRuleMetaData';
import { IValidationSeverityRegistry } from './IValidationSeverityRegistry';
import { IValidationProblemReporter } from './IValidationProblemReporter';
