/**
 * Visual Validator Agent
 *
 * Performs visual regression testing by comparing screenshots.
 * Detects UI changes, color scheme drift, layout shifts, and more.
 *
 * Communicates via Living Brain (context.json).
 */
import { Page } from "playwright";
import { SubAgent } from "../interfaces/SubAgent";
import { VisualValidationResult, VisionValidationRule, VisualDiffResult } from "../../types/vision-testing";
export interface VisualValidatorInput {
    currentScreenshot: string;
    baselineScreenshot?: string;
    validationRules: VisionValidationRule[];
    projectPath: string;
    page?: Page;
}
export interface VisualValidatorOutput {
    results: VisualValidationResult[];
    passed: boolean;
    visualDiff?: VisualDiffResult;
    summary: {
        totalChecks: number;
        passed: number;
        failed: number;
        warnings: number;
    };
}
export declare class VisualValidatorAgent implements SubAgent<VisualValidatorInput, VisualValidatorOutput> {
    name: string;
    description: string;
    personality: string;
    llmProvider: string;
    expertise: string[];
    private visionService;
    private contextService?;
    constructor();
    run(input: VisualValidatorInput): Promise<VisualValidatorOutput>;
    /**
     * Validate visual match between current and baseline screenshots
     */
    private validateVisualMatch;
    /**
     * Validate color scheme matches expectations
     */
    private validateColorScheme;
    /**
     * Validate layout structure
     */
    private validateLayout;
    /**
     * Validate text readability
     */
    private validateTextReadability;
    /**
     * Validate no visual regression
     */
    private validateNoRegression;
    /**
     * Validate DOM-based rules (fallback for non-visual checks)
     */
    private validateDOMRule;
    /**
     * Compare two screenshots and detect differences
     * NOTE: This is a placeholder - in production would use pixelmatch or sharp
     */
    private compareScreenshots;
    /**
     * Write update to Living Brain
     */
    private writeLivingBrain;
    validate(input: VisualValidatorInput): Promise<boolean>;
    getStatus(): Promise<{
        name: string;
        status: "idle" | "running" | "completed" | "error";
        lastRun?: Date;
        executionTime?: number;
        errorCount: number;
        successCount: number;
    }>;
}
//# sourceMappingURL=VisualValidatorAgent.d.ts.map