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