/**
 * AI-Powered Asset Generation System
 * Phase 5, Checkpoint E1 - Complete AI integration for intelligent asset and template generation
 */
import { OllamaClient } from './ollama-client';
import { DomainPromptEngine, PromptContext } from './prompt-engine';
import { AIResponseCache } from './response-cache';
import { SchemaInfo } from '../core/schema-adapter';
import { Template } from '../features/generation/template-engine';
export interface GenerationOptions {
    useCache?: boolean;
    cacheTimeout?: number;
    fallbackToFaker?: boolean;
    maxRetries?: number;
    qualityThreshold?: number;
    model?: string;
    temperature?: number;
    tags?: string[];
}
export interface AssetGenerationResult {
    success: boolean;
    data?: any;
    metadata: {
        source: 'ai' | 'cache' | 'fallback';
        model?: string;
        responseTime: number;
        quality?: number;
        tokensUsed?: number;
        cacheHit: boolean;
    };
    errors: string[];
    warnings: string[];
}
export interface TemplateRecommendation {
    template: Partial<Template>;
    confidence: number;
    reasoning: string;
    suggestedVariables: Array<{
        name: string;
        type: string;
        description: string;
        required: boolean;
        suggestedDefault?: any;
    }>;
}
export interface SchemaAnalysis {
    improvements: Array<{
        category: 'relationships' | 'indexes' | 'constraints' | 'seeding';
        title: string;
        description: string;
        priority: 'low' | 'medium' | 'high';
        implementation: string;
    }>;
    seedingStrategy: {
        order: string[];
        relationships: Array<{
            from: string;
            to: string;
            type: string;
        }>;
        estimatedTime: number;
    };
    qualityScore: number;
}
export declare class AIAssetGenerator {
    private ollama;
    private promptEngine;
    private cache;
    constructor(ollama?: OllamaClient, promptEngine?: DomainPromptEngine, cache?: AIResponseCache);
    /**
     * Generate realistic seed data using AI
     */
    generateSeedData(table: string, count: number, context: PromptContext, options?: GenerationOptions): Promise<AssetGenerationResult>;
    /**
     * Generate intelligent template recommendations
     */
    recommendTemplate(context: PromptContext, templateType: string, options?: GenerationOptions): Promise<TemplateRecommendation | null>;
    /**
     * Analyze schema and suggest improvements
     */
    analyzeSchema(schema: SchemaInfo, options?: GenerationOptions): Promise<SchemaAnalysis | null>;
    /**
     * Generate contextual field suggestions
     */
    suggestFields(table: string, existingColumns: Array<{
        name: string;
        type: string;
    }>, domain: string, options?: GenerationOptions): Promise<Array<{
        name: string;
        type: string;
        description: string;
        required: boolean;
    }>>;
    /**
     * Get AI service status
     */
    getStatus(): Promise<{
        ai_available: boolean;
        model: string;
        cache_stats: any;
        recommendations: string[];
    }>;
    /**
     * Clear AI cache
     */
    clearCache(criteria?: {
        tags?: string[];
        model?: string;
    }): number;
    /**
     * Private: Fallback to Faker.js generation
     */
    private fallbackToFaker;
    /**
     * Private: Assess quality of generated data
     */
    private assessDataQuality;
    /**
     * Private: Parse template recommendation from AI response
     */
    private parseTemplateRecommendation;
    /**
     * Private: Parse schema analysis from AI response
     */
    private parseSchemaAnalysis;
}
export declare const aiAssetGenerator: AIAssetGenerator;
//# sourceMappingURL=asset-generator.d.ts.map