import type { LTTelemetryAdapter } from '../../types/telemetry';
/**
 * Singleton registry for the telemetry adapter.
 *
 * Unlike the event registry (which fans out to multiple adapters),
 * telemetry uses a single adapter because OTEL only supports one
 * global TracerProvider at a time.
 *
 * The adapter must be registered and connected BEFORE HotMesh
 * workers start so that spans are captured from the first workflow.
 */
declare class LTTelemetryRegistry {
    private adapter;
    private connected;
    /**
     * Register a telemetry adapter. Call before connect().
     * Replaces any previously registered adapter.
     */
    register(adapter: LTTelemetryAdapter): void;
    /**
     * Connect the registered adapter (initializes OTEL SDK).
     * Must be called before HotMesh workers start.
     */
    connect(): Promise<void>;
    /**
     * Disconnect the adapter (flush + shutdown OTEL SDK).
     * Call during graceful shutdown.
     */
    disconnect(): Promise<void>;
    /**
     * Remove the adapter and reset state. Used in tests.
     */
    clear(): void;
    /**
     * Check if an adapter is registered.
     */
    get hasAdapter(): boolean;
    /**
     * Trace URL template from the registered adapter (if any).
     * Contains `{traceId}` placeholder for substitution.
     */
    get traceUrl(): string | undefined;
}
/** Singleton telemetry registry */
export declare const telemetryRegistry: LTTelemetryRegistry;
export {};
