import type { LTEvent, LTEventAdapter } from '../../types';
declare class LTEventRegistry {
    private adapters;
    private connected;
    /**
     * Register an event adapter. Call before connect().
     */
    register(adapter: LTEventAdapter): void;
    /**
     * Connect all registered adapters. Call during startup.
     */
    connect(): Promise<void>;
    /**
     * Publish an event to all registered adapters.
     * Best-effort: individual adapter failures are logged, not thrown.
     */
    publish(event: LTEvent): Promise<void>;
    /**
     * Disconnect all registered adapters. Call during shutdown.
     */
    disconnect(): Promise<void>;
    /**
     * Remove all adapters and reset state. Used in tests.
     */
    clear(): void;
    /**
     * Check if any adapters are registered.
     */
    get hasAdapters(): boolean;
    /**
     * Return the first registered adapter that matches the given type.
     */
    getAdapter<T extends LTEventAdapter>(ctor: new (...args: any[]) => T): T | undefined;
    /**
     * Bridge cross-container events to the in-process callback adapter.
     *
     * Iterates all registered adapters and calls `setCallbackBridge()` on
     * any that implement it. This is the generic contract — any transport
     * adapter (NATS, SNS, GCP Pub/Sub, Kafka) that supports cross-process
     * delivery implements `setCallbackBridge` on the LTEventAdapter interface.
     */
    bridgeCallbackAdapter(callbackAdapter: LTEventAdapter): void;
}
/** Singleton event registry */
export declare const eventRegistry: LTEventRegistry;
export {};
