import type { RuntimeEventBus } from '../events/index.js';
import type { EmitterContext } from './index.js';
/** Emit PLUGIN_DISCOVERED when a plugin is found during scan. */
export declare function emitPluginDiscovered(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    pluginId: string;
    path: string;
    version: string;
}): void;
/** Emit PLUGIN_LOADING when a plugin begins loading. */
export declare function emitPluginLoading(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    pluginId: string;
    path: string;
}): void;
/** Emit PLUGIN_LOADED when a plugin is successfully loaded. */
export declare function emitPluginLoaded(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    pluginId: string;
    version: string;
    capabilities: string[];
}): void;
/** Emit PLUGIN_ACTIVE when a plugin is fully active. */
export declare function emitPluginActive(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    pluginId: string;
}): void;
/** Emit PLUGIN_DEGRADED when a plugin loses partial functionality. */
export declare function emitPluginDegraded(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    pluginId: string;
    reason: string;
    affectedCapabilities: string[];
}): void;
/** Emit PLUGIN_ERROR when a plugin encounters an error. */
export declare function emitPluginError(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    pluginId: string;
    error: string;
    fatal: boolean;
}): void;
/** Emit PLUGIN_UNLOADING when a plugin begins unloading. */
export declare function emitPluginUnloading(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    pluginId: string;
    reason?: string | undefined;
}): void;
/** Emit PLUGIN_DISABLED when a plugin is permanently disabled. */
export declare function emitPluginDisabled(bus: RuntimeEventBus, ctx: EmitterContext, data: {
    pluginId: string;
    reason: string;
}): void;
//# sourceMappingURL=plugins.d.ts.map