/**
 * Generic provider-name → handler registry shared by every media-generation
 * ecosystem (TTS, STT, Realtime, Video, Music, Avatar). Each ecosystem's own
 * processor class composes one instance of this class instead of hand-rolling
 * its own `Map<string, THandler>` plus register/supports/get/list methods.
 *
 * Centralizes only the behavior that was byte-identical across all six
 * hand-rolled registries: input validation, name normalization (lowercase),
 * the overwrite-warning log line, and the four lookup/list/clear operations.
 * Registration-outcome debug logging (whose exact phrasing differs per
 * ecosystem — e.g. "Registered TTS handler..." vs "Registered video
 * handler...") and any ecosystem-specific extra logging (e.g. TTS/STT's
 * `supports()` diagnostics) stay in the owning processor's own wrapper
 * methods; this class does not attempt to unify those.
 */
export declare class HandlerRegistry<THandler> {
    private readonly scopeName;
    private readonly handlers;
    /**
     * @param scopeName Log-line prefix, e.g. "TTSProcessor" — matches the
     *   `[ClassName]` prefix each processor already uses in its own logs.
     */
    constructor(scopeName: string);
    register(providerName: string, handler: THandler): void;
    supports(providerName: string): boolean;
    get(providerName: string): THandler | undefined;
    list(): string[];
    clear(): void;
}
