import { runHealthScan, type HealthScanOptions, type HealthScanSummary } from "./health-scan.js";
import { runSmoke, type SmokeResult } from "./smoke.js";
export type QuickQaScanner = NonNullable<HealthScanOptions["scanners"]>[number];
export type QuickQaSkipTarget = QuickQaScanner | "smoke";
export type QuickQaStatus = "passed" | "warn" | "failed";
export declare const DEFAULT_QUICK_QA_OVERALL_TIMEOUT_MS = 120000;
export declare const DEFAULT_QUICK_QA_SCANNERS: QuickQaScanner[];
export interface QuickQaSelection {
    scanners: QuickQaScanner[];
    includeSmoke: boolean;
    skipped: QuickQaSkipTarget[];
}
export interface QuickQaOptions {
    url: string;
    pages?: string[];
    projectId?: string;
    headed?: boolean;
    timeoutMs?: number;
    overallTimeoutMs?: number;
    maxPages?: number;
    scanners?: QuickQaScanner[];
    includeSmoke?: boolean;
    model?: string;
    wcagLevel?: "A" | "AA" | "AAA";
    healthScanner?: typeof runHealthScan;
    smokeRunner?: typeof runSmoke;
}
export interface QuickQaCheckSummary {
    name: "health" | "smoke";
    status: QuickQaStatus | "skipped";
    issues: number;
    actionableIssues: number;
    detail: string;
}
export interface QuickQaResult {
    url: string;
    status: QuickQaStatus;
    durationMs: number;
    health: HealthScanSummary;
    smoke: SmokeResult | null;
    checks: QuickQaCheckSummary[];
    issueCounts: {
        total: number;
        actionable: number;
        health: number;
        smoke: number;
    };
}
export declare function normalizeQuickQaWcagLevel(value: unknown): "A" | "AA" | "AAA";
export declare function resolveQuickQaSelection(options?: {
    skip?: string[];
    includeA11y?: boolean;
    includeSmoke?: boolean;
    scanners?: QuickQaScanner[];
}): QuickQaSelection;
export declare function runQuickQa(options: QuickQaOptions): Promise<QuickQaResult>;
export declare function buildQuickQaTimeoutResult(input: {
    url: string;
    start: number;
    timeoutMs: number;
}): QuickQaResult;
export declare function buildQuickQaResult(input: {
    url: string;
    health: HealthScanSummary;
    smoke: SmokeResult | null;
    durationMs: number;
}): QuickQaResult;
export declare function getQuickQaExitCode(result: QuickQaResult): number;
export declare function formatQuickQaReport(result: QuickQaResult): string;
//# sourceMappingURL=quick-qa.d.ts.map