/** * Plugin host: manages plugin registration and capability widening. * - Ensures idempotency: same plugin applied twice is a no-op * - Tracks capabilities: merges { validation, pubsub, ... } from applied plugins * - Returns the widened router type (same instance, type-level only) * * Internal; called by router.plugin(). */ import type { ConnectionData } from "../context/base-context.js"; import type { Router } from "../core/router.js"; import type { Capabilities, Plugin } from "./types.js"; export declare class PluginHost { private readonly router; private readonly applied; private capabilities; constructor(router: Router); /** * Apply a plugin with idempotency check. * - If the plugin was already applied, return the router as-is (type-widened). * - Otherwise, call the plugin, merge capabilities, and return the result. * @param plugin Pure function: (router) => Router */ apply

>(plugin: P): ReturnType

; /** * Get readonly view of merged capabilities. */ getCapabilities(): Readonly; } //# sourceMappingURL=manager.d.ts.map