UNPKG

harmony-plugin-manager

Version:

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

49 lines 2.27 kB
/** * Factory for creating plugin managers and builders * * Provides convenient factory methods for creating: * - Plugin managers with type safety * - Plugin manager builders for fluent configuration * - Type-safe managers with explicit input/output types */ import { PluginManager } from '../manager'; import { PluginManagerBuilder } from '../builder'; export declare class ManagerFactory { /** * Creates a new plugin manager instance * * @template TInput - Type of input data for plugins * @template TOutput - Type of output data from plugins * @template TMetadata - Type of execution metadata * @returns New plugin manager instance */ static create<TInput = unknown, TOutput = unknown, TMetadata extends Record<string, unknown> = Record<string, unknown>>(): PluginManager<TInput, TOutput, TMetadata>; /** * Creates a new plugin manager builder for fluent configuration * * @template TInput - Type of input data for plugins * @template TOutput - Type of output data from plugins * @template TMetadata - Type of execution metadata * @returns New plugin manager builder instance */ static builder<TInput = unknown, TOutput = unknown, TMetadata extends Record<string, unknown> = Record<string, unknown>>(): PluginManagerBuilder<TInput, TOutput, TMetadata>; /** * Creates type-safe factory methods for specific input/output types * Useful when working with known data structures * * @param inputType - Constructor for input type (for type inference) * @param outputType - Constructor for output type (for type inference) * @returns Object with typed create and builder methods */ static typed<TInput, TOutput>(inputType: new () => TInput, outputType: new () => TOutput): { /** * Creates typed plugin manager */ create: <TMetadata extends Record<string, unknown> = Record<string, unknown>>() => PluginManager<TInput, TOutput, TMetadata>; /** * Creates typed plugin manager builder */ builder: <TMetadata extends Record<string, unknown> = Record<string, unknown>>() => PluginManagerBuilder<TInput, TOutput, TMetadata>; }; } //# sourceMappingURL=manager.factory.d.ts.map