import type { OASAnalysis, OASAnalysisFeature } from 'oas/analyzer/types';
import type { OASDocument } from 'oas/types';
export interface AnalyzedFeature extends OASAnalysisFeature {
    description: string;
    /**
     * The analyzed feature is not worth reporting within the inspector.
     */
    hidden?: boolean;
    url?: string | {
        /**
         * OpenAPI 3.1 introduced some new features so there won't be any docs on 3.0.
         */
        '3.0'?: string;
        '3.1': string;
    };
}
export interface Analysis extends OASAnalysis {
    openapi: {
        additionalProperties: AnalyzedFeature;
        callbacks: AnalyzedFeature;
        circularRefs: AnalyzedFeature;
        commonParameters: AnalyzedFeature;
        discriminators: AnalyzedFeature;
        links: AnalyzedFeature;
        polymorphism: AnalyzedFeature;
        refNames: OASAnalysisFeature;
        serverVariables: AnalyzedFeature;
        style: AnalyzedFeature;
        webhooks: AnalyzedFeature;
        xmlRequests: AnalyzedFeature;
        xmlResponses: AnalyzedFeature;
        xmlSchemas: AnalyzedFeature;
    };
}
/**
 * Analyze a given OpenAPI or Swagger definition for any OpenAPI, JSON Schema, and ReadMe-specific
 * feature uses it may contain.
 *
 */
declare function analyzeOas(definition: OASDocument): Promise<Analysis>;
export declare function getSupportedFeatures(): string[];
export default analyzeOas;
