import { AuthorizationCodeOAuthFlow } from '../../../models/common/AuthorizationCodeOAuthFlow';
import { ClientCredentialsOAuthFlow } from '../../../models/common/ClientCredentialsOAuthFlow';
import { ImplicitOAuthFlow } from '../../../models/common/ImplicitOAuthFlow';
import { OAuthFlow } from '../../../models/common/OAuthFlow';
import { PasswordOAuthFlow } from '../../../models/common/PasswordOAuthFlow';
import { ValidationRuleMetaData } from '../../ValidationRuleMetaData';
import { RequiredPropertyValidationRule } from './RequiredPropertyValidationRule';
/**
 * Constructor.
 * @param {ValidationRuleMetaData} ruleInfo
 * @class
 * @extends RequiredPropertyValidationRule
 * @author eric.wittmann@gmail.com
 */
export declare class MissingOAuthFlowScopesRule extends RequiredPropertyValidationRule {
    constructor(ruleInfo: ValidationRuleMetaData);
    /**
     * Require the 'scopes' property.
     * @param {OAuthFlow} node
     * @private
     */
    visitOAuthFlow(node: OAuthFlow): void;
    /**
     * @see io.apicurio.datamodels.combined.visitors.CombinedAllNodeVisitor#visitImplicitOAuthFlow(io.apicurio.datamodels.core.models.common.ImplicitOAuthFlow)
     * @param {ImplicitOAuthFlow} node
     */
    visitImplicitOAuthFlow(node: ImplicitOAuthFlow): void;
    /**
     * @see io.apicurio.datamodels.combined.visitors.CombinedAllNodeVisitor#visitPasswordOAuthFlow(io.apicurio.datamodels.core.models.common.PasswordOAuthFlow)
     * @param {PasswordOAuthFlow} node
     */
    visitPasswordOAuthFlow(node: PasswordOAuthFlow): void;
    /**
     * @see io.apicurio.datamodels.combined.visitors.CombinedAllNodeVisitor#visitClientCredentialsOAuthFlow(io.apicurio.datamodels.core.models.common.ClientCredentialsOAuthFlow)
     * @param {ClientCredentialsOAuthFlow} node
     */
    visitClientCredentialsOAuthFlow(node: ClientCredentialsOAuthFlow): void;
    /**
     * @see io.apicurio.datamodels.combined.visitors.CombinedAllNodeVisitor#visitAuthorizationCodeOAuthFlow(io.apicurio.datamodels.core.models.common.AuthorizationCodeOAuthFlow)
     * @param {AuthorizationCodeOAuthFlow} node
     */
    visitAuthorizationCodeOAuthFlow(node: AuthorizationCodeOAuthFlow): void;
}
