import type { EventEmitter } from '../events/event-system';
import type { EmitterEvent } from '../types/shared-types';
export declare abstract class KitPlugin {
    /**
     * The name of this plugin.
     */
    abstract name: string;
    /**
     * The emitter that belongs to this plugin.
     */
    private _emitter;
    /**
     * Register this plugin with the event system.
     * @param pEmitter - The emitter that belongs to this plugin.
     */
    _register(pEmitter: EventEmitter): void;
    /**
     * The entry point for custom behavior after registration for custom plugins.
     */
    abstract onRegistered(): void;
    /**
     * Emit an event.
     * @param pEvent - The event to emit.
     */
    emit(pEvent: EmitterEvent): void;
}
//# sourceMappingURL=kit-plugin.d.ts.map