import { ICaseTransformer } from '../interfaces'; /** * Registry for auto-discovering available transformers * * This registry follows the Registry Pattern and provides: * - Auto-discovery of available transformer classes * - Type-safe transformer class retrieval * - Centralized transformer metadata management * * @example * ```typescript * const availableStyles = TransformerRegistry.getAvailableCaseStyles(); * const TransformerClass = TransformerRegistry.getTransformerClass('camelCase'); * ``` */ export declare class TransformerRegistry { /** * Registry of all available transformer classes * Maps case style names to their corresponding transformer classes */ private static readonly TRANSFORMER_CLASSES; /** * Get all available case styles * @returns Array of case style names * * @example * ```typescript * const styles = TransformerRegistry.getAvailableCaseStyles(); * // Returns: ['camelCase', 'snake_case', 'PascalCase', 'kebab-case'] * ``` */ static getAvailableCaseStyles(): string[]; /** * Get transformer class by case style * @param caseStyle - The case style name * @returns The transformer class constructor or undefined * * @example * ```typescript * const CamelCaseClass = TransformerRegistry.getTransformerClass('camelCase'); * const instance = new CamelCaseClass(); * ``` */ static getTransformerClass(caseStyle: string): (new () => ICaseTransformer) | undefined; /** * Check if a case style is supported by the registry * @param caseStyle - The case style name * @returns True if the case style is supported * * @example * ```typescript * const isSupported = TransformerRegistry.isSupported('camelCase'); * // Returns: true * ``` */ static isSupported(caseStyle: string): boolean; /** * Get transformer metadata * @param caseStyle - The case style name * @returns Transformer metadata or undefined * * @example * ```typescript * const metadata = TransformerRegistry.getTransformerMetadata('camelCase'); * // Returns: { caseStyle: 'camelCase', class: CamelCaseTransformer } * ``` */ static getTransformerMetadata(caseStyle: string): { caseStyle: string; class: new () => ICaseTransformer; } | undefined; /** * Get all transformer metadata * @returns Array of all transformer metadata * * @example * ```typescript * const allMetadata = TransformerRegistry.getAllTransformerMetadata(); * // Returns: Array of { caseStyle, class } objects * ``` */ static getAllTransformerMetadata(): Array<{ caseStyle: string; class: new () => ICaseTransformer; }>; /** * Get registry statistics * @returns Registry statistics object * * @example * ```typescript * const stats = TransformerRegistry.getStats(); * // Returns: { totalTransformers: 4, supportedStyles: [...] } * ``` */ static getStats(): { totalTransformers: number; supportedStyles: string[]; }; } //# sourceMappingURL=transformer.registry.d.ts.map