/**
 * Advanced Developer Debugging Tools - Phase 1D
 *
 * Enhanced validation state inspection, visual debugging tools,
 * and comprehensive developer diagnostics.
 */
import type { FormattedErrorMessage } from './enhanced-errors';
export type ValidationDebugEventType = 'validation-start' | 'validation-complete' | 'validation-error' | 'validation-warning' | 'validation-end' | 'component-validation' | 'modifier-validation';
export interface DebugEvent {
    type: string;
    timestamp: number;
    componentId?: string;
    componentName?: string;
    data: any;
    stack?: string;
}
/**
 * Advanced debugging configuration
 */
export interface AdvancedDebuggingConfig {
    enableVisualDebugging: boolean;
    highlightValidationErrors: boolean;
    showComponentBoundaries: boolean;
    showModifierEffects: boolean;
    enableStateInspection: boolean;
    trackStateChanges: boolean;
    showStateHistory: boolean;
    maxHistorySize: number;
    enablePerformanceDebugging: boolean;
    trackRenderTimes: boolean;
    showMemoryUsage: boolean;
    enableFrameProfiler: boolean;
    enableInteractiveMode: boolean;
    showDebugPanel: boolean;
    enableBreakpoints: boolean;
    enableStepThrough: boolean;
    enableDebugExport: boolean;
    exportFormat: 'json' | 'csv' | 'html';
    includeSourceMaps: boolean;
}
/**
 * Component state snapshot for debugging
 */
export interface ComponentStateSnapshot {
    id: string;
    componentType: string;
    timestamp: number;
    props: Record<string, any>;
    state: Record<string, any>;
    modifiers: string[];
    validationErrors: FormattedErrorMessage[];
    validationWarnings: FormattedErrorMessage[];
    isValid: boolean;
    renderTime: number;
    memoryUsage: number;
    updateCount: number;
    domNode?: {
        tagName: string;
        className: string;
        attributes: Record<string, string>;
        computedStyles: Record<string, string>;
    };
    parent?: string;
    children: string[];
}
/**
 * Validation state inspector
 */
export interface ValidationStateInspector {
    id: string;
    target: 'component' | 'modifier' | 'global';
    targetId?: string;
    watchProperties: string[];
    watchEvents: ValidationDebugEventType[];
    snapshots: ComponentStateSnapshot[];
    events: DebugEvent[];
    trends: {
        errorFrequency: number;
        performanceRegression: boolean;
        memoryLeaks: boolean;
        stateInconsistencies: boolean;
    };
    isActive: boolean;
    startTime: number;
    lastUpdate: number;
}
/**
 * Visual debugging overlay
 */
export interface VisualDebuggingOverlay {
    id: string;
    type: 'error-highlight' | 'component-boundary' | 'modifier-effect' | 'performance-heatmap';
    color: string;
    opacity: number;
    strokeWidth: number;
    animation?: 'pulse' | 'fade' | 'shake';
    bounds: {
        x: number;
        y: number;
        width: number;
        height: number;
    };
    label?: string;
    tooltip?: string;
    additionalInfo?: Record<string, any>;
    duration: number;
    createdAt: number;
    expiresAt: number;
}
/**
 * Advanced debugging session
 */
export interface AdvancedDebuggingSession {
    id: string;
    name: string;
    description: string;
    startTime: number;
    endTime?: number;
    duration?: number;
    components: Map<string, ComponentStateSnapshot[]>;
    validators: ValidationStateInspector[];
    overlays: VisualDebuggingOverlay[];
    events: DebugEvent[];
    summary: {
        totalErrors: number;
        totalWarnings: number;
        criticalIssues: string[];
        performanceIssues: string[];
        recommendations: string[];
    };
    exported: boolean;
    exportFormat?: string;
    exportPath?: string;
}
/**
 * Advanced validation state inspector
 */
export declare class AdvancedValidationInspector {
    private inspectors;
    private snapshots;
    private overlays;
    private activeSession;
    /**
     * Create a new state inspector
     */
    createInspector(target: 'component' | 'modifier' | 'global', targetId?: string, options?: {
        watchProperties?: string[];
        watchEvents?: ValidationDebugEventType[];
    }): string;
    /**
     * Take a component state snapshot
     */
    takeSnapshot(componentId: string, componentData: {
        type: string;
        props: Record<string, any>;
        state: Record<string, any>;
        modifiers: string[];
        domElement?: HTMLElement;
    }): string;
    /**
     * Add visual debugging overlay
     */
    addVisualOverlay(type: VisualDebuggingOverlay['type'], bounds: {
        x: number;
        y: number;
        width: number;
        height: number;
    }, options?: {
        color?: string;
        label?: string;
        tooltip?: string;
        duration?: number;
        animation?: VisualDebuggingOverlay['animation'];
    }): string;
    /**
     * Start advanced debugging session
     */
    startSession(name: string, description?: string): string;
    /**
     * Stop debugging session and generate report
     */
    stopSession(): AdvancedDebuggingSession | null;
    /**
     * Get component state history
     */
    getComponentHistory(componentId: string): ComponentStateSnapshot[];
    /**
     * Get validation trends analysis
     */
    getValidationTrends(componentId?: string): {
        errorRate: number;
        warningRate: number;
        performanceRegression: boolean;
        memoryTrend: 'increasing' | 'stable' | 'decreasing';
        recommendations: string[];
    };
    /**
     * Export debugging session data
     */
    exportSessionData(session: AdvancedDebuggingSession, format?: 'json' | 'csv' | 'html'): string;
    /**
     * Extract DOM information from element
     */
    private extractDOMInfo;
    /**
     * Get computed styles for an element
     */
    private getComputedStyles;
    /**
     * Get current memory usage
     */
    private getMemoryUsage;
    /**
     * Get default color for overlay type
     */
    private getDefaultColor;
    /**
     * Update active inspectors with new snapshot
     */
    private updateInspectors;
    /**
     * Update inspector trends analysis
     */
    private updateInspectorTrends;
    /**
     * Analyze debugging session
     */
    private analyzeSession;
    /**
     * Export session as JSON
     */
    private exportAsJSON;
    /**
     * Export session as CSV
     */
    private exportAsCSV;
    /**
     * Export session as HTML report
     */
    private exportAsHTML;
    /**
     * Get inspector statistics
     */
    getStatistics(): {
        activeInspectors: number;
        totalSnapshots: number;
        activeOverlays: number;
        sessionActive: boolean;
        memoryUsage: number;
    };
}
/**
 * Configure advanced debugging
 */
export declare function configureAdvancedDebugging(config: Partial<AdvancedDebuggingConfig>): void;
/**
 * Get current advanced debugging configuration
 */
export declare function getAdvancedDebuggingConfig(): AdvancedDebuggingConfig;
declare const advancedInspector: AdvancedValidationInspector;
/**
 * Advanced Debugging utilities
 */
export declare const AdvancedDebuggingUtils: {
    /**
     * Create new inspector
     */
    createInspector: (target: "component" | "modifier" | "global", targetId?: string, options?: any) => string;
    /**
     * Take component snapshot
     */
    takeSnapshot: (componentId: string, componentData: any) => string;
    /**
     * Add visual overlay
     */
    addVisualOverlay: (type: VisualDebuggingOverlay["type"], bounds: any, options?: any) => string;
    /**
     * Start debugging session
     */
    startSession: (name: string, description?: string) => string;
    /**
     * Stop debugging session
     */
    stopSession: () => AdvancedDebuggingSession | null;
    /**
     * Get component history
     */
    getComponentHistory: (componentId: string) => ComponentStateSnapshot[];
    /**
     * Get validation trends
     */
    getValidationTrends: (componentId?: string) => {
        errorRate: number;
        warningRate: number;
        performanceRegression: boolean;
        memoryTrend: "increasing" | "stable" | "decreasing";
        recommendations: string[];
    };
    /**
     * Export session data
     */
    exportSessionData: (session: AdvancedDebuggingSession, format?: "json" | "csv" | "html") => string;
    /**
     * Configure debugging
     */
    configure: typeof configureAdvancedDebugging;
    /**
     * Get configuration
     */
    getConfig: typeof getAdvancedDebuggingConfig;
    /**
     * Get statistics
     */
    getStatistics: () => {
        activeInspectors: number;
        totalSnapshots: number;
        activeOverlays: number;
        sessionActive: boolean;
        memoryUsage: number;
    };
    /**
     * Test advanced debugging system
     */
    test: () => void;
};
export { advancedInspector };
//# sourceMappingURL=advanced-debugging.d.ts.map