import { EventEmitter } from 'events';
import { E as ErrorInfo } from '../index-D9DTurRB.mjs';

/**
 * @fileoverview OrdoJS Dev Tools - Error Overlay
 *
 * Error overlay for displaying compilation and runtime errors with helpful suggestions.
 */

/**
 * Error overlay for displaying errors with helpful suggestions
 */
declare class ErrorOverlay extends EventEmitter {
    private errors;
    private isRunning;
    private port;
    /**
     * Create a new ErrorOverlay instance
     *
     * @param port - WebSocket port for error overlay
     */
    constructor(port?: number);
    /**
     * Start the error overlay
     */
    start(): Promise<void>;
    /**
     * Stop the error overlay
     */
    stop(): Promise<void>;
    /**
     * Add an error to the overlay
     *
     * @param errorId - Unique error identifier
     * @param errorInfo - Error information
     */
    addError(errorId: string, errorInfo: ErrorInfo): void;
    /**
     * Update an error
     *
     * @param errorId - Error identifier
     * @param updates - Error updates
     */
    updateError(errorId: string, updates: Partial<ErrorInfo>): void;
    /**
     * Remove an error
     *
     * @param errorId - Error identifier
     */
    removeError(errorId: string): void;
    /**
     * Get error by ID
     *
     * @param errorId - Error identifier
     * @returns Error information or undefined
     */
    getError(errorId: string): ErrorInfo | undefined;
    /**
     * Get all errors
     *
     * @returns Array of all errors
     */
    getAllErrors(): ErrorInfo[];
    /**
     * Clear all errors
     */
    clearErrors(): void;
    /**
     * Get error statistics
     *
     * @returns Error statistics
     */
    getErrorStats(): {
        totalErrors: number;
        errorsByType: Record<string, number>;
        errorsByFile: Record<string, number>;
    };
    /**
     * Generate error suggestions
     *
     * @param errorId - Error identifier
     * @returns Array of suggestions
     */
    generateSuggestions(errorId: string): string[];
    /**
     * Get error type from error message
     *
     * @param error - Error information
     * @returns Error type
     */
    private getErrorType;
    /**
     * Start WebSocket server for error overlay communication
     */
    private startWebSocketServer;
    /**
     * Stop WebSocket server
     */
    private stopWebSocketServer;
}

export { ErrorOverlay };
