/**
 * Generator Registry
 * Manages available code generators
 */
import { Generator, FrontendGenerator, BackendGenerator, DocumentationGenerator, DatabaseGenerator, TestGenerator, CliGenerator } from './types';
export declare class GeneratorRegistry {
    private frontendGenerators;
    private backendGenerators;
    private documentationGenerators;
    private databaseGenerators;
    private testGenerators;
    private cliGenerators;
    private customGenerators;
    private validationWarnings;
    /**
     * Get all validation warnings from generator registration
     */
    getValidationWarnings(): string[];
    /**
     * Clear validation warnings
     */
    clearValidationWarnings(): void;
    /**
     * Validate base generator fields
     */
    private validateBaseGenerator;
    /**
     * Register a frontend generator
     */
    registerFrontendGenerator(generator: FrontendGenerator): void;
    /**
     * Register a backend generator
     */
    registerBackendGenerator(generator: BackendGenerator): void;
    /**
     * Register a documentation generator
     */
    registerDocumentationGenerator(generator: DocumentationGenerator): void;
    /**
     * Register a database generator
     */
    registerDatabaseGenerator(generator: DatabaseGenerator): void;
    /**
     * Register a test generator
     */
    registerTestGenerator(generator: TestGenerator): void;
    /**
     * Register a CLI generator
     */
    registerCliGenerator(generator: CliGenerator): void;
    /**
     * Register a custom generator
     */
    registerCustomGenerator(generator: Generator): void;
    /**
     * Get a frontend generator by framework
     */
    getFrontendGenerator(framework: string): FrontendGenerator | undefined;
    /**
     * Get a frontend generator with helpful error message if not found
     */
    getFrontendGeneratorOrThrow(framework: string): FrontendGenerator;
    /**
     * Get a backend generator by language and optional framework
     */
    getBackendGenerator(language: string, framework?: string): BackendGenerator | undefined;
    /**
     * Get a backend generator with helpful error message if not found
     */
    getBackendGeneratorOrThrow(language: string, framework?: string): BackendGenerator;
    /**
     * Get a documentation generator by format
     */
    getDocumentationGenerator(format: string): DocumentationGenerator | undefined;
    /**
     * Get a database generator
     */
    getDatabaseGenerator(database: string): DatabaseGenerator | undefined;
    /**
     * Get a database generator with helpful error message if not found
     */
    getDatabaseGeneratorOrThrow(database: string): DatabaseGenerator;
    /**
     * Get a test generator
     */
    getTestGenerator(testFramework: string): TestGenerator | undefined;
    /**
     * Get a CLI generator
     */
    getCliGenerator(framework: string): CliGenerator | undefined;
    /**
     * Get a custom generator
     */
    getCustomGenerator(id: string): Generator | undefined;
    /**
     * Get a component generator by type and technology
     * This is the flexible stack system lookup
     */
    getComponentGenerator(type: string, technology: string): Generator | undefined;
    /**
     * List all registered frontend frameworks
     */
    listFrontendFrameworks(): string[];
    /**
     * List all registered backend languages
     */
    listBackendLanguages(): string[];
    /**
     * List all registered documentation formats
     */
    listDocumentationFormats(): string[];
    /**
     * List all registered databases
     */
    listDatabases(): string[];
    /**
     * List all registered test frameworks
     */
    listTestFrameworks(): string[];
    /**
     * List all registered CLI frameworks
     */
    listCliFrameworks(): string[];
    /**
     * Get all custom generators
     */
    getCustomGenerators(): Generator[];
    /**
     * Find similar strings using Levenshtein distance
     * Returns top 3 most similar strings
     */
    private findSimilar;
    /**
     * Calculate Levenshtein distance between two strings
     */
    private levenshteinDistance;
    /**
     * Get detailed information about a generator
     */
    getGeneratorInfo(type: string, technology: string): {
        exists: boolean;
        generator?: Generator;
        suggestions?: string[];
        availableOptions?: string[];
    };
}
export declare const globalRegistry: GeneratorRegistry;
//# sourceMappingURL=generator-registry.d.ts.map