/**
 * Result Factory Module
 * Creates consistent AccessibilityResult and PageTestResult objects
 */
import { AccessibilityResult } from '../types';
import { PageTestResult } from './accessibility-checker';
import { RedirectDetectionResult } from './redirect-detector';
/**
 * Configuration for result creation
 */
export interface ResultFactoryConfig {
    readonly url: string;
    readonly title?: string;
    readonly duration?: number;
}
/**
 * ResultFactory - Centralized result object creation
 *
 * Responsibilities:
 * - Create consistent AccessibilityResult objects
 * - Create PageTestResult objects
 * - Handle error scenarios uniformly
 * - Reduce code duplication
 */
export declare class ResultFactory {
    /**
     * Create a skipped result for redirected URLs
     */
    static createRedirectResult(redirectInfo: RedirectDetectionResult, duration: number): PageTestResult;
    /**
     * Create an error result for failed tests
     */
    static createErrorResult(url: string, error: string | Error, duration: number, crashed?: boolean): PageTestResult;
    /**
     * Create a minimal accessibility result (for URL checks)
     */
    static createMinimalResult(config: ResultFactoryConfig): AccessibilityResult;
    /**
     * Create a base accessibility result with common defaults
     */
    static createBaseAccessibilityResult(url: string, title: string): AccessibilityResult;
    /**
     * Create a 404 result
     */
    static create404Result(url: string, duration: number): AccessibilityResult;
    /**
     * Create an HTTP error result
     */
    static createHttpErrorResult(url: string, statusCode: number, duration: number): AccessibilityResult;
    /**
     * Add redirect metadata to result
     */
    static addRedirectInfo(result: AccessibilityResult, redirectInfo: RedirectDetectionResult): AccessibilityResult;
}
//# sourceMappingURL=result-factory.d.ts.map