import type { Page } from "playwright";
export type A11yLevel = "A" | "AA" | "AAA";
export interface A11yViolation {
    id: string;
    impact: "critical" | "serious" | "moderate" | "minor";
    description: string;
    help: string;
    helpUrl: string;
    nodes: {
        html: string;
        target: string[];
        failureSummary?: string;
    }[];
}
export interface A11yAuditResult {
    violations: A11yViolation[];
    passes: {
        id: string;
        description: string;
    }[];
    incomplete: {
        id: string;
        description: string;
        impact?: string;
    }[];
    url: string;
    timestamp: string;
    totalViolations: number;
    criticalCount: number;
    seriousCount: number;
    moderateCount: number;
    minorCount: number;
}
export interface A11yAuditOptions {
    level?: A11yLevel;
    /** Specific rules to run (by default, runs all) */
    rules?: string[];
    /** Elements to exclude from scanning */
    exclude?: string[];
}
/**
 * Run axe-core accessibility audit on the current page.
 * Injects axe via CDN and runs accessibility checks.
 */
export declare function runA11yAudit(page: Page, options?: A11yAuditOptions): Promise<A11yAuditResult>;
/**
 * Check if any violations exceed the given severity threshold.
 */
export declare function hasA11yIssues(result: A11yAuditResult, maxImpact?: A11yViolation["impact"]): boolean;
/**
 * Format accessibility audit results as a human-readable report.
 */
export declare function formatA11yResults(result: A11yAuditResult): string;
//# sourceMappingURL=a11y-audit.d.ts.map