/**
 * Metadata extractor for OpenAPI specifications
 */
import type { OpenAPISpec, TagObject, ExternalDocumentationObject } from '../types/index';
export interface ApiMetadata {
    info: {
        title: string;
        version: string;
        description?: string;
        contact?: {
            name?: string;
            url?: string;
            email?: string;
        };
        license?: {
            name: string;
            url?: string;
        };
        termsOfService?: string;
    };
    servers: {
        url: string;
        description?: string;
        variables?: Record<string, {
            enum?: string[];
            default: string;
            description?: string;
        }>;
    }[];
    tags: TagObject[];
    externalDocs?: ExternalDocumentationObject;
    statistics: {
        pathCount: number;
        operationCount: number;
        schemaCount: number;
        securitySchemeCount: number;
        parameterCount: number;
        responseCount: number;
        operationsByMethod: Record<string, number>;
        operationsByTag: Record<string, number>;
        deprecatedOperations: number;
    };
}
export declare class MetadataExtractor {
    /**
     * Extract comprehensive metadata from OpenAPI specification
     */
    static extractMetadata(spec: OpenAPISpec): ApiMetadata;
    /**
     * Extract API information
     */
    private static extractInfo;
    /**
     * Extract server information
     */
    private static extractServers;
    /**
     * Extract tag information
     */
    private static extractTags;
    /**
     * Calculate comprehensive statistics
     */
    private static calculateStatistics;
    /**
     * Generate API summary
     */
    static generateSummary(metadata: ApiMetadata): string;
    /**
     * Validate metadata completeness
     */
    static validateMetadata(metadata: ApiMetadata): {
        score: number;
        suggestions: string[];
    };
}
//# sourceMappingURL=metadata-extractor.d.ts.map