import { ValidationRuleMetaData } from '../../../ValidationRuleMetaData';
import { OasPathItem } from '../../../../../openapi/models/OasPathItem';
import { OasPaths } from '../../../../../openapi/models/OasPaths';
import { OasInvalidPropertyNameRule } from './OasInvalidPropertyNameRule';
/**
 * Constructor.
 * @param {ValidationRuleMetaData} ruleInfo
 * @class
 * @extends OasInvalidPropertyNameRule
 * @author eric.wittmann@gmail.com
 */
export declare class OasIdenticalPathTemplateRule extends OasInvalidPropertyNameRule {
    indexedPathTemplates: any;
    constructor(ruleInfo: ValidationRuleMetaData);
    /**
     * Utility function to find other paths that are semantically similar to the path that is being checked against.
     * Two paths that differ only in formal parameter name are considered identical.
     * For example, paths /test/{var1} and /test/{var2} are identical.
     * See OAS 3 Specification's Path Templates section for more details.
     *
     * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#path-templating-matching
     *
     * @param {string} pathToCheck
     * @param pathIndex
     * @return {string[]}
     * @private
     */
    findIdenticalPaths(pathToCheck: string): Array<string>;
    /**
     * Utility function to test the equality of two path segments.
     * Segments are considered equal if they have same prefixes (if any) and same "normalized name".
     *
     * @param {ValidationRule.PathSegment} segment1
     * @param {ValidationRule.PathSegment} segment2
     * @return {boolean} {boolean}
     * @private
     */
    isSegmentIdentical(segment1: ValidationRule.PathSegment, segment2: ValidationRule.PathSegment): boolean;
    /**
     * @see io.apicurio.datamodels.combined.visitors.CombinedAllNodeVisitor#visitPaths(io.apicurio.datamodels.openapi.models.OasPaths)
     * @param {OasPaths} node
     */
    visitPaths(node: OasPaths): void;
    /**
     * @see io.apicurio.datamodels.combined.visitors.CombinedAllNodeVisitor#visitPathItem(io.apicurio.datamodels.openapi.models.OasPathItem)
     * @param {OasPathItem} node
     */
    visitPathItem(node: OasPathItem): void;
}
import { ValidationRule } from '../../../ValidationRule';
