import { ValidationRule } from '../../../ValidationRule';
import { ValidationRuleMetaData } from '../../../ValidationRuleMetaData';
/**
 * Constructor.
 * @param {ValidationRuleMetaData} ruleInfo
 * @class
 * @extends ValidationRule
 * @author eric.wittmann@gmail.com
 */
export declare abstract class OasInvalidPropertyNameRule extends ValidationRule {
    static DEFINITION_NAME_MATCH_REGEX: string;
    constructor(ruleInfo: ValidationRuleMetaData);
    /**
     * Returns true if the definition name is valid.
     * @param {string} name
     * @return {boolean}
     */
    isValidDefinitionName(name: string): boolean;
    /**
     * Returns true if the scope name is valid.
     * @param {string} scope
     * @return {boolean}
     */
    isValidScopeName(scope: string): boolean;
    /**
     * Finds all occurences of path segments that are empty.
     * i.e. they neither have a prefix nor a path variable within curly braces.
     *
     * @param {ValidationRule.PathSegment[]} pathSegments
     * @return {ValidationRule.PathSegment[]}
     */
    findEmptySegmentsInPath(pathSegments: Array<ValidationRule.PathSegment>): Array<ValidationRule.PathSegment>;
    /**
     * Finds path segments that are duplicates i.e. they have the same formal name used across multiple segments.
     * For example, in a path like /prefix/{var1}/{var1}, var1 is used in multiple segments.
     *
     * @param {ValidationRule.PathSegment[]} pathSegments
     * @return {string[]}
     */
    findDuplicateParametersInPath(pathSegments: Array<ValidationRule.PathSegment>): Array<string>;
}
