harmony-plugin-manager
Version:
A comprehensive TypeScript library for generating harmonious color palettes with WCAG 2.1 accessibility compliance
52 lines • 2.13 kB
TypeScript
/**
* 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