import { EventEmitter } from 'events';
import { C as ComponentInfo } from '../index-D9DTurRB.js';

/**
 * @fileoverview OrdoJS Dev Tools - Component Inspector
 *
 * Component inspector for debugging and analyzing component behavior.
 */

/**
 * Component inspector for debugging and analyzing components
 */
declare class ComponentInspector extends EventEmitter {
    private components;
    private isRunning;
    private port;
    /**
     * Create a new ComponentInspector instance
     *
     * @param port - WebSocket port for inspector
     */
    constructor(port?: number);
    /**
     * Start the component inspector
     */
    start(): Promise<void>;
    /**
     * Stop the component inspector
     */
    stop(): Promise<void>;
    /**
     * Register a component for inspection
     *
     * @param componentInfo - Component information
     */
    registerComponent(componentInfo: ComponentInfo): void;
    /**
     * Update component information
     *
     * @param componentName - Component name
     * @param updates - Component updates
     */
    updateComponent(componentName: string, updates: Partial<ComponentInfo>): void;
    /**
     * Get component information
     *
     * @param componentName - Component name
     * @returns Component information or undefined
     */
    getComponent(componentName: string): ComponentInfo | undefined;
    /**
     * Get all components
     *
     * @returns Array of all component information
     */
    getAllComponents(): ComponentInfo[];
    /**
     * Get component tree
     *
     * @returns Component tree structure
     */
    getComponentTree(): ComponentInfo[];
    /**
     * Clear all components
     */
    clearComponents(): void;
    /**
     * Get inspector statistics
     *
     * @returns Inspector statistics
     */
    getStats(): {
        totalComponents: number;
        totalRenderCount: number;
        averageRenderTime: number;
        peakMemoryUsage: number;
    };
    /**
     * Start WebSocket server for inspector communication
     */
    private startWebSocketServer;
    /**
     * Stop WebSocket server
     */
    private stopWebSocketServer;
    /**
     * Check if component has a parent
     *
     * @param component - Component to check
     * @param componentMap - Map of all components
     * @returns True if component has a parent
     */
    private hasParent;
}

export { ComponentInspector };
