import type { PluginContext, NotificationOptions } from './PluginInterfaces.js'; import type { IPluginEventClient } from './interfaces.js'; import type { PluginRegistry } from './PluginRegistry.js'; /** * Options for constructing a PluginContext via `createPluginContext`. */ export interface PluginContextOptions { /** The plugin's unique identifier. */ pluginId: string; /** * Optional event client for the `context.events` API. * Any object implementing `on(event, handler)` / `off(event, handler)` works — * e.g. a MatrixClient, Node.js EventEmitter, or socket.io socket. */ eventClient?: IPluginEventClient; /** * Called when a plugin invokes `context.notify(...)`. * The host is responsible for displaying the notification however it wants. */ onNotify?: (options: NotificationOptions) => void | Promise; } /** * Creates a PluginContext wired to the given registry. * Call this before registering and loading a plugin. * * @param options - Host-specific dependencies for the plugin. * @param registry - The shared PluginRegistry instance. * @returns A fully-wired PluginContext ready to be passed to `plugin.onLoad`. */ export declare function createPluginContext(options: PluginContextOptions, registry: PluginRegistry): PluginContext; //# sourceMappingURL=PluginContext.d.ts.map