import type { Event } from "./Event.js";
import type { MessageBus } from "./MessageBus.js";
/**
 * A registry of well-known events.
 */
export declare abstract class EventRegistry {
    protected readonly _messages: MessageBus;
    /**
     * Event name prefix that will be added to all events in this registry.
     */
    protected abstract readonly _prefix: string;
    /**
     * Creates a registry.
     *
     * @param messages The message bus to use.
     */
    constructor(messages: MessageBus);
    /**
     * Returns the event corresponding to the given unqualified name.
     *
     * @param name The name of the event without the common prefix associated
     *   with this registry.
     */
    protected _get<T = void>(name: string): Event<T>;
}
