/** * Creates isolated Plugin test hosts with injected Capability providers and lifecycle controls. * * @module */ import type { EditorPlugin } from '../plugin-kernel/plugin-types.js'; import type { CapabilityToken, PluginPermission, PluginRef, SynchronousEditorPlugin } from '../sdk/index.js'; export interface PluginTestCapabilityProvider { readonly token: CapabilityToken; readonly implementation: TPort; readonly providerId?: string; readonly requiredPermission?: PluginPermission; verifyCleanup?(): void | Promise; } export interface PluginTestHostOptions { readonly hostCapabilities?: readonly PluginTestCapabilityProvider[]; } export type PluginTestHostState = 'created' | 'initializing' | 'initialized' | 'disposing' | 'disposed'; export interface PluginTestHost { readonly state: PluginTestHostState; readonly warnings: readonly unknown[]; readonly errors: readonly unknown[]; install(plugin: EditorPlugin): Promise; installSync(plugin: SynchronousEditorPlugin): TApi; get(ref: PluginRef): TApi | null; has(refOrId: PluginRef | string): boolean; initialize(): Promise; initializeSync(): void; notifyImageLoaded(image: unknown): Promise; notifyImageCleared(): Promise; dispose(): Promise; disposeSync(): void; } /** Creates a narrow, renderer-free host for isolated Plugin tests. */ export declare function createPluginTestHost(options?: PluginTestHostOptions): PluginTestHost;