/**
 * 📊 FIXED AUDIT DATA STRUCTURE
 *
 * Definitive data structure for all reports.
 * Any missing data must immediately throw an error.
 */
export interface AuditMetadata {
    version: string;
    timestamp: string;
    sitemapUrl: string;
    toolVersion: string;
    duration: number;
}
export interface AuditSummary {
    totalPages: number;
    testedPages: number;
    passedPages: number;
    failedPages: number;
    crashedPages: number;
    redirectPages?: number;
    totalErrors: number;
    totalWarnings: number;
    overallScore?: number;
    overallGrade?: string;
    certificateLevel?: string;
}
export interface AccessibilityIssue {
    code: string;
    type: 'error' | 'warning' | 'notice';
    message: string;
    context?: string;
    selector?: string;
    runner?: string;
}
export interface PageAccessibility {
    score: number;
    errors: AccessibilityIssue[];
    warnings: AccessibilityIssue[];
    notices: AccessibilityIssue[];
}
export interface PerformanceIssue {
    type: 'warning' | 'info';
    message: string;
    metric?: string;
    value?: number;
    threshold?: number;
}
export interface PagePerformance {
    score: number;
    grade: string;
    coreWebVitals: {
        largestContentfulPaint: number;
        firstContentfulPaint: number;
        cumulativeLayoutShift: number;
        timeToFirstByte: number;
    };
    metrics: {
        domContentLoaded: number;
        loadComplete: number;
        firstPaint: number;
    };
    issues?: PerformanceIssue[];
}
export interface SEOMetaTags {
    title?: string;
    description?: string;
    keywords?: string;
    ogTitle?: string;
    ogDescription?: string;
    canonical?: string;
    robots?: string;
}
export interface SEOHeadings {
    h1: string[];
    h2: string[];
    h3: string[];
    h4: string[];
    h5: string[];
    h6: string[];
}
export interface SEOImageAnalysis {
    total: number;
    withAlt: number;
    withoutAlt: number;
    missingAltImages?: string[];
}
export interface SEOIssue {
    type: 'error' | 'warning' | 'info';
    category: string;
    message: string;
    element?: string;
}
export interface PageSEO {
    score: number;
    grade: string;
    metaTags: SEOMetaTags;
    headings: SEOHeadings;
    images: SEOImageAnalysis;
    issues: SEOIssue[];
    url: string;
    title: string;
    overallSEOScore?: number;
    seoGrade?: string;
    semanticSEO?: Record<string, unknown>;
    voiceSearchOptimization?: Record<string, unknown>;
    eatAnalysis?: Record<string, unknown>;
    coreWebVitalsSEO?: Record<string, unknown>;
}
export interface ContentOptimization {
    type: string;
    message: string;
    potentialSavings?: number;
    severity?: 'low' | 'medium' | 'high';
}
export interface PageContentWeight {
    score: number;
    grade: string;
    totalSize: number;
    resources: {
        html: {
            size: number;
        };
        css: {
            size: number;
            files: number;
        };
        javascript: {
            size: number;
            files: number;
        };
        images: {
            size: number;
            files: number;
        };
        other: {
            size: number;
            files: number;
        };
    };
    optimizations: ContentOptimization[];
}
export interface MobileRecommendation {
    category: string;
    message: string;
    priority?: 'low' | 'medium' | 'high';
    impact?: string;
}
export interface PageMobileFriendliness {
    overallScore: number;
    grade: string;
    recommendations: MobileRecommendation[];
}
export interface AuditPage {
    url: string;
    title: string;
    status: 'passed' | 'failed' | 'crashed';
    duration: number;
    accessibility: PageAccessibility;
    performance?: PagePerformance;
    seo?: PageSEO;
    contentWeight?: PageContentWeight;
    mobileFriendliness?: PageMobileFriendliness;
}
export interface SystemPerformance {
    testCompletionTimeSeconds: number;
    parallelProcessing: {
        pagesProcessed: number;
        concurrentWorkers: number;
        averageTimePerPageMs: number;
        throughputPagesPerMinute: number;
    };
    memoryUsage: {
        peakUsageMB: number;
        heapUsedMB: number;
        rssUsageMB: number;
        externalMB: number;
    };
    architecture: {
        eventDrivenParallel: boolean;
        comprehensiveAnalysis: boolean;
        browserPooling: boolean;
        persistenceEnabled: boolean;
    };
}
/**
 * MAIN AUDIT DATA STRUCTURE
 * This is the definitive format for all reports
 */
export interface AuditData {
    metadata: AuditMetadata;
    summary: AuditSummary;
    pages: AuditPage[];
    systemPerformance?: SystemPerformance;
}
/**
 * VALIDATION FUNCTIONS
 * Immediately throw errors if required data is missing
 */
export declare function validateAuditData(data: AuditData): void;
/**
 * Check for comprehensive analysis data
 */
export declare function validateComprehensiveData(data: AuditData): void;
//# sourceMappingURL=audit-data.d.ts.map