UNPKG

harmony-plugin-manager

Version:

A comprehensive TypeScript library for generating harmonious color palettes with WCAG 2.1 accessibility compliance

52 lines 2.13 kB
/** * Plugin Registration wrapper for managing plugin metadata and settings * * Encapsulates: * - Plugin instance with its metadata * - Runtime settings (enabled state, priority, configuration) * - Registration timestamp for audit purposes * - Convenience methods for accessing plugin properties */ import type { IPlugin } from '../core/interfaces'; import type { PluginSettings } from '../core/types'; /** * Represents a registered plugin with its associated settings and metadata * Provides immutable access to plugin information and settings management */ export declare class PluginRegistration<TPlugin extends IPlugin = IPlugin> { readonly plugin: TPlugin; readonly settings: PluginSettings; readonly registeredAt: number; constructor(plugin: TPlugin, settings: PluginSettings, registeredAt?: number); /** Plugin name from metadata */ get name(): string; /** Current enabled state from settings */ get isEnabled(): boolean; /** Execution priority from settings */ get priority(): number; /** Plugin dependencies from metadata */ get dependencies(): readonly string[] | undefined; /** Plugin version from metadata */ get version(): string; /** Plugin description from metadata */ get description(): string | undefined; /** Plugin tags from metadata */ get tags(): readonly string[]; /** * Creates a new registration with updated settings * Maintains immutability by returning a new instance * * @param settings - Partial settings to merge with current settings * @returns New registration instance with updated settings */ withSettings(settings: Partial<PluginSettings>): PluginRegistration<TPlugin>; /** * Checks if plugin version is compatible with required version * Currently performs exact version matching - can be enhanced for semver ranges * * @param requiredVersion - Version requirement to check against * @returns True if versions are compatible */ isCompatibleWith(requiredVersion: string): boolean; } //# sourceMappingURL=plugin-registration.d.ts.map