/**
 * RuntimeEventsController
 *
 * A Lit ReactiveController that replaces the `useRuntimeEvents()` React hook
 * from RuntimeProvider.tsx. Subscribes to the runtime event bus when the host
 * element connects to the DOM and unsubscribes when it disconnects.
 *
 * Usage:
 * ```ts
 * class MyElement extends LitElement {
 *   private _events = new RuntimeEventsController(
 *     this,
 *     runtime,
 *     { names: ['ui.click'] },
 *     (event) => { ... }
 *   );
 * }
 * ```
 */
import type { ReactiveController, ReactiveControllerHost } from 'lit';
import type { EventFilter, NormalizedEvent } from '../events/types.js';
import type { SmartCanvasRuntime } from '../runtime.js';
export type { EventFilter };
export declare class RuntimeEventsController implements ReactiveController {
    private _host;
    private _runtime;
    private _filter;
    private _callback;
    private _unsubscribe;
    constructor(host: ReactiveControllerHost, runtime: SmartCanvasRuntime | null | undefined, filter: EventFilter | undefined, callback: (event: NormalizedEvent) => void);
    hostConnected(): void;
    hostDisconnected(): void;
    /**
     * Update the event filter. Resubscribes immediately if the host is connected.
     */
    setFilter(filter: EventFilter | undefined): void;
    /**
     * Update the event callback. Resubscribes immediately if the host is connected.
     */
    setCallback(callback: (event: NormalizedEvent) => void): void;
    private _subscribe;
}
