/**
 * Manifest Validator
 *
 * Validates SpecVerse manifests against registry metadata.
 * Checks that all instance factories referenced in the manifest exist
 * in the registry and validates capability mappings.
 *
 * @module registry/validators/manifest-validator
 * @version 2.0.0
 */
import { OfflineHandler } from '../offline/offline-handler.js';
import type { ValidationResult } from '../types/index.js';
/**
 * Manifest to validate
 */
export interface SpecVerseManifest {
    /** Spec version */
    specVersion: string;
    /** Instance factories used */
    instanceFactories: Array<{
        name: string;
        source: string;
    }>;
    /** Capability mappings */
    capabilityMappings?: Array<{
        capability: string;
        instanceFactory: string;
    }>;
}
/**
 * Manifest validation options
 */
export interface ManifestValidationOptions {
    /** Treat warnings as errors */
    strict?: boolean;
    /** Skip deprecated factory checks */
    skipDeprecated?: boolean;
    /** Offline mode - only use cache */
    offline?: boolean;
    /** File path for error reporting */
    filePath?: string;
}
/**
 * Manifest Validator
 *
 * Validates manifests against registry metadata.
 */
export declare class ManifestValidator {
    private offlineHandler;
    constructor(offlineHandler?: OfflineHandler);
    /**
     * Validate manifest
     *
     * @param manifest - Manifest to validate
     * @param options - Validation options
     * @returns Validation result with errors, warnings, and info
     */
    validate(manifest: SpecVerseManifest, options?: ManifestValidationOptions): Promise<ValidationResult>;
    /**
     * Find similar factory names using Levenshtein distance
     *
     * @param target - Target name
     * @param candidates - Candidate names
     * @returns Top 5 similar names
     */
    private findSimilarFactories;
    /**
     * Calculate Levenshtein distance between two strings
     *
     * @param a - First string
     * @param b - Second string
     * @returns Edit distance
     */
    private levenshteinDistance;
    /**
     * Get offline handler
     *
     * @returns Offline handler instance
     */
    getOfflineHandler(): OfflineHandler;
}
//# sourceMappingURL=manifest-validator.d.ts.map