import { EventEmitter } from 'events';
import { Component, ComponentConfig, ComponentState, GridSize } from '../types/monitoring';
import { FocusableComponent, FocusState, KeyboardEvent, MouseEvent } from '../types/interaction';
export declare abstract class BaseComponent extends Component implements FocusableComponent {
    protected refreshInterval?: NodeJS.Timeout;
    protected isDestroyed: boolean;
    protected lastRenderTime: number;
    protected renderThrottleMs: number;
    protected focusState: FocusState;
    constructor(config: ComponentConfig, eventBus: EventEmitter);
    protected initializeComponent(): void;
    protected setupEventListeners(): void;
    protected abstract createWidget(): void;
    protected throttledRender(): void;
    protected handleTerminalResize(data: {
        width: number;
        height: number;
    }): void;
    protected handleThemeChange(data: {
        theme: string;
    }): void;
    protected handleComponentUpdate(data: any): void;
    protected applyTheme(_theme: string): void;
    protected startRefresh(intervalMs: number): void;
    protected stopRefresh(): void;
    protected requestUpdate(): void;
    protected updateState(updates: Partial<ComponentState>): void;
    protected handleError(error: Error): void;
    resize(size: GridSize): void;
    show(): void;
    hide(): void;
    destroy(): void;
    getId(): string;
    getType(): string;
    canFocus(): boolean;
    focus(): void;
    blur(): void;
    getFocusState(): FocusState;
    handleKeyboard(event: KeyboardEvent): boolean;
    handleMouse(event: MouseEvent): boolean;
    setTabIndex(index: number): void;
    setFocusable(focusable: boolean): void;
    setShowFocusRing(show: boolean): void;
    protected updateFocusVisuals(): void;
    protected handleEnterKey(event: KeyboardEvent): void;
    protected handleEscapeKey(event: KeyboardEvent): void;
    protected handleSpaceKey(event: KeyboardEvent): void;
    protected handleCustomKeyboard(_event: KeyboardEvent): boolean;
    protected handleMouseClick(event: MouseEvent): void;
    protected handleRightClick(event: MouseEvent): void;
    protected handleMouseWheel(event: MouseEvent): void;
    protected handleMouseMove(event: MouseEvent): void;
    protected isMouseEventInBounds(event: MouseEvent): boolean;
    protected getComponentBounds(): {
        left: number;
        top: number;
        right: number;
        bottom: number;
    } | null;
}
//# sourceMappingURL=base.component.d.ts.map