/**
 * Main Validator
 *
 * Orchestrates manifest and installation validation.
 * Provides a unified interface for validating SpecVerse projects.
 *
 * @module registry/validators/validator
 * @version 2.0.0
 */
import { ManifestValidator } from './manifest-validator.js';
import { InstallationValidator } from './installation-validator.js';
import { OfflineHandler } from '../offline/offline-handler.js';
import type { SpecVerseManifest } from './manifest-validator.js';
import type { ValidationResult, ManifestValidationOptions, InstallationValidationOptions } from '../types/index.js';
/**
 * Complete validation options
 */
export interface ValidatorOptions {
    /** Manifest validation options */
    manifest?: ManifestValidationOptions;
    /** Installation validation options */
    installation?: InstallationValidationOptions;
    /** Skip manifest validation */
    skipManifest?: boolean;
    /** Skip installation validation */
    skipInstallation?: boolean;
    /** Offline mode - only use cache */
    offline?: boolean;
}
/**
 * Validation report
 */
export interface ValidationReport {
    /** Overall validation result */
    result: ValidationResult;
    /** Manifest validation result (if run) */
    manifestResult?: ValidationResult;
    /** Installation validation result (if run) */
    installationResult?: ValidationResult;
    /** Summary statistics */
    summary: {
        totalIssues: number;
        errorCount: number;
        warningCount: number;
        infoCount: number;
        validationsPassed: string[];
        validationsFailed: string[];
    };
}
/**
 * Main Validator
 *
 * Orchestrates all validation stages.
 */
export declare class Validator {
    private manifestValidator;
    private installationValidator;
    private offlineHandler;
    constructor(offlineHandler?: OfflineHandler);
    /**
     * Validate a manifest file
     *
     * Runs both manifest and installation validation unless skipped.
     *
     * @param manifest - Manifest to validate
     * @param options - Validation options
     * @returns Validation report
     */
    validate(manifest: SpecVerseManifest, options?: ValidatorOptions): Promise<ValidationReport>;
    /**
     * Validate manifest only (skip installation check)
     *
     * @param manifest - Manifest to validate
     * @param options - Manifest validation options
     * @returns Validation report
     */
    validateManifestOnly(manifest: SpecVerseManifest, options?: ManifestValidationOptions): Promise<ValidationReport>;
    /**
     * Validate installation only (skip manifest check)
     *
     * @param manifest - Manifest to validate
     * @param options - Installation validation options
     * @returns Validation report
     */
    validateInstallationOnly(manifest: SpecVerseManifest, options?: InstallationValidationOptions): Promise<ValidationReport>;
    /**
     * Get offline handler
     *
     * @returns Offline handler instance
     */
    getOfflineHandler(): OfflineHandler;
    /**
     * Get manifest validator
     *
     * @returns Manifest validator instance
     */
    getManifestValidator(): ManifestValidator;
    /**
     * Get installation validator
     *
     * @returns Installation validator instance
     */
    getInstallationValidator(): InstallationValidator;
    /**
     * Enable offline mode
     */
    enableOfflineMode(): void;
    /**
     * Disable offline mode
     */
    disableOfflineMode(): void;
}
//# sourceMappingURL=validator.d.ts.map