/**
 * Attachment processing utilities for Playwright reports
 */
import { PlaywrightReport } from './parser';
/**
 * Attachment information extracted from Playwright report
 */
export interface AttachmentInfo {
    name: string;
    contentType: string;
    originalPath: string;
    relativePath: string;
    absolutePath: string;
    type: 'image' | 'video' | 'trace' | 'other';
}
/**
 * Result of attachment scanning process
 */
export interface AttachmentScanResult {
    images: AttachmentInfo[];
    videos: AttachmentInfo[];
    traces: AttachmentInfo[];
    other: AttachmentInfo[];
    total: number;
}
/**
 * Service for scanning and processing attachments from Playwright reports
 */
export declare class AttachmentScanner {
    private readonly baseDirectory;
    constructor(baseDirectory: string);
    /**
     * Scan Playwright report for all attachments
     */
    scanAttachments(report: PlaywrightReport): Promise<AttachmentScanResult>;
    /**
     * Recursively scan a test suite for attachments
     */
    private scanSuite;
    /**
     * Scan a spec for attachments
     */
    private scanSpec;
    /**
     * Process a single attachment and resolve its paths
     */
    private processAttachment;
    /**
     * Classify attachment by content type and name
     */
    private classifyAttachment;
    /**
     * Filter attachments based on configuration flags
     */
    static filterAttachments(scanResult: AttachmentScanResult, config: {
        uploadImages: boolean;
        uploadVideos: boolean;
        uploadHtml: boolean;
        uploadTraces: boolean;
    }): AttachmentInfo[];
    /**
     * Static version of classifyAttachment for use in static methods
     */
    private static classifyAttachmentType;
    /**
     * Determine what should happen to an attachment path based on config
     * Returns: 'upload' | 'not-enabled' | 'not-supported' | 'unchanged'
     */
    private static getAttachmentPathAction;
    /**
     * Update attachment paths in the JSON report to use Azure URLs or mark as 'Not Enabled'
     */
    static updateAttachmentPaths(report: PlaywrightReport, urlMapping: Map<string, string>, config?: {
        uploadImages: boolean;
        uploadVideos: boolean;
        uploadHtml: boolean;
        uploadTraces: boolean;
    }): PlaywrightReport;
}
//# sourceMappingURL=attachments.d.ts.map