/** * Enhanced plugin interfaces * filepath: /home/janrau/tm-integration/packages/core/src/interfaces/plugin.interface.ts */ import type { LionRapidCore } from '../lionRapid.js'; import type { EventEmitter } from '../base/event-emitter.js'; import type { FormatterParams, ProcessorParams } from '../types/parameters.types.js'; export interface PluginContext { core: LionRapidCore; bus: EventEmitter; } /** * ✅ Base plugin interface */ export interface IPlugin { readonly name: string; readonly version: string; readonly type: 'plugin'; readonly capabilities: PluginCapability[]; initialize(ctx: PluginContext): Promise | void; destroy?(): Promise | void; } /** * ✅ Plugin capability types */ export type PluginCapability = 'formatters' | 'processors' | 'pluralization' | 'context' | 'analytics' | 'logging' | 'react' | 'validation' | 'dev-tools' | 'monitoring'; /** * ✅ Type-safe formatter function signature */ export type FormatterFunction = (value: string, params?: FormatterParams, locale?: string, translationKey?: string) => string; /** * ✅ Type-safe value processor function signature */ export type ValueProcessor = (value: string, params?: ProcessorParams, translationKey?: string) => string; /** * ✅ Embedded plugin interface - provides core functionality */ export interface IEmbeddedPlugin extends IPlugin { capabilities: ('formatters' | 'processors' | 'pluralization' | 'context')[]; getFormatters?(): Record; getProcessors?(): Record; } /** * ✅ Event-driven plugin interface - pure observers */ export interface IEventPlugin extends IPlugin { capabilities: ('analytics' | 'logging' | 'react' | 'validation' | 'dev-tools' | 'monitoring')[]; } //# sourceMappingURL=plugin.interface.d.ts.map