import { TestOutputHandler, OutputConfiguration, OutputResult, OutputContext } from '../types/test-output-types.js';
import { TestResult } from '../types/index.js';
/**
 * Centralized handler for all test output operations
 * Implements DRY principles and standardized file management
 */
export declare class StandardTestOutputHandler implements TestOutputHandler {
    private outputDir;
    constructor(outputDir?: string);
    /**
     * Generate the appropriate output path for a test
     */
    generateOutputPath(sessionId: string, testType: string, config: OutputConfiguration, context: OutputContext): string;
    /**
     * Save content to the appropriate location
     */
    saveOutput(content: string | Buffer, outputPath: string, config: OutputConfiguration): Promise<OutputResult>;
    /**
     * Ensure the necessary directories exist for the output
     */
    ensureOutputDirectory(outputPath: string): Promise<void>;
    /**
     * Get relative path for use in reports and links
     */
    getRelativePath(outputPath: string, basePath: string): string;
    /**
     * Generate standardized filename from pattern and context
     */
    private generateFilename;
    /**
     * Sanitize filename for cross-platform compatibility
     */
    private sanitizeFilename;
    /**
     * Create a standardized test result with output information
     */
    static createTestResult(testType: string, status: 'success' | 'failed' | 'pending', outputResult?: OutputResult, error?: string): TestResult;
    /**
     * Update an existing test result with completion information
     */
    static completeTestResult(testResult: TestResult, status: 'success' | 'failed', outputResult?: OutputResult, error?: string): TestResult;
    /**
     * Get page name from URL (utility method)
     */
    static getPageNameFromUrl(url: string): string;
    /**
     * Filter test results by output type
     */
    static filterResultsByOutputType(results: TestResult[], outputType: 'per-page' | 'site-wide'): TestResult[];
    /**
     * Group per-page results by page
     */
    static groupPerPageResultsByPage(results: TestResult[]): Map<string, TestResult[]>;
    /**
     * Validate output configuration and provide helpful error messages
     */
    static validateConfiguration(testType: string): {
        valid: boolean;
        errors: string[];
    };
}
//# sourceMappingURL=test-output-handler.d.ts.map