/**
 * AccessibilityChecker v2 - Clean Architecture
 *
 * This is a complete rewrite of the AccessibilityChecker with proper
 * separation of concerns, dependency injection, and typed interfaces.
 */
import { AccessibilityResult } from '../types';
import { BrowserPoolManager } from '../browser/browser-pool-manager';
import { ILogger, AnalyzerType, BaseAnalysisOptions } from '../analyzers/interfaces';
import { AnalysisResults } from '../analysis/analysis-orchestrator';
/**
 * Configuration for AccessibilityChecker
 */
export interface AccessibilityCheckerConfig {
    readonly poolManager: BrowserPoolManager;
    readonly logger?: ILogger;
    readonly enableComprehensiveAnalysis?: boolean;
    readonly analyzerTypes?: AnalyzerType[];
    readonly qualityAnalysisOptions?: any;
}
/**
 * Options for testing pages
 */
export interface PageTestOptions extends BaseAnalysisOptions {
    readonly pa11yStandard?: 'WCAG2A' | 'WCAG2AA' | 'WCAG2AAA' | 'Section508';
    readonly includeNotices?: boolean;
    readonly includeWarnings?: boolean;
    readonly wait?: number;
    readonly hideElements?: string;
    readonly enableComprehensiveAnalysis?: boolean;
    readonly skipRedirects?: boolean;
}
/**
 * Result from testing a single page
 */
export interface PageTestResult {
    readonly url: string;
    readonly title: string;
    readonly accessibilityResult: AccessibilityResult;
    readonly comprehensiveAnalysis?: AnalysisResults;
    readonly duration: number;
    readonly timestamp: Date;
}
/**
 * Result from testing multiple pages
 */
export interface MultiPageTestResult {
    readonly results: PageTestResult[];
    readonly skippedUrls: string[];
    readonly totalDuration: number;
    readonly timestamp: Date;
}
/**
 * AccessibilityChecker v2 - Clean, focused implementation
 *
 * Responsibilities:
 * - Core accessibility testing via pa11y
 * - Basic page analysis (images, buttons, headings)
 * - Orchestration of comprehensive analysis (via AnalysisOrchestrator)
 * - Browser pool management coordination
 */
export declare class AccessibilityChecker {
    private readonly config;
    private readonly logger;
    private readonly analyzerFactory?;
    private readonly analysisOrchestrator?;
    constructor(config: AccessibilityCheckerConfig);
    /**
     * Initialize the accessibility checker
     */
    initialize(): Promise<void>;
    /**
     * Cleanup resources
     */
    cleanup(): Promise<void>;
    /**
     * Test a single page for accessibility
     */
    testPage(url: string, options?: PageTestOptions): Promise<PageTestResult>;
    /**
     * Test multiple pages in parallel with redirect filtering
     */
    testMultiplePages(urls: string[], options?: PageTestOptions): Promise<MultiPageTestResult>;
    /**
     * Pre-filter redirects from URL list
     */
    private preFilterRedirects;
    /**
     * Create queue with callbacks
     */
    private createQueue;
    /**
     * Collect results from queue execution
     */
    private collectResults;
    /**
     * Test URL for basic connectivity (used by SmartUrlSampler)
     */
    testUrlMinimal(url: string, timeout?: number): Promise<AccessibilityResult>;
    /**
     * Get available analysis types
     */
    getAvailableAnalysisTypes(): AnalyzerType[];
    /**
     * Check if comprehensive analysis should be run
     */
    private shouldRunComprehensiveAnalysis;
    /**
     * Run comprehensive analysis on a page
     */
    private runComprehensiveAnalysis;
    /**
     * Configure page settings before navigation
     */
    private configurePage;
    private runBasicAccessibilityAnalysis;
    /**
     * Run pa11y accessibility tests
     */
    private runPa11yTests;
    /**
     * Process pa11y issues and add them to result
     */
    private processPa11yIssues;
    /**
     * Calculate pa11y score based on issues
     */
    private calculatePa11yScore;
    /**
     * Calculate fallback score when pa11y fails
     */
    private calculateFallbackScore;
}
/**
 * Error classes
 */
export declare class AccessibilityTestError extends Error {
    constructor(url: string, message: string);
}
//# sourceMappingURL=accessibility-checker.d.ts.map