import { DataSource } from 'typeorm';
import { QueryContext } from './query-watcher.interceptor';
import { SlowQueryAnalysis } from './query-watcher.service';
export interface QueryOptimizationSuggestion {
    type: 'index' | 'rewrite' | 'schema' | 'caching' | 'partitioning';
    priority: 'low' | 'medium' | 'high' | 'critical';
    table: string;
    column?: string;
    currentQuery: string;
    optimizedQuery?: string;
    indexDefinition?: string;
    description: string;
    estimatedImpact: string;
    implementationEffort: 'low' | 'medium' | 'high';
}
export interface QueryPattern {
    pattern: string;
    count: number;
    averageDuration: number;
    lastSeen: Date;
    optimization?: QueryOptimizationSuggestion;
}
export declare class QueryAnalyzerService {
    private readonly dataSource;
    private readonly logger;
    private readonly queryPatterns;
    private readonly indexSuggestions;
    constructor(dataSource: DataSource);
    analyzeQuery(context: QueryContext): Promise<SlowQueryAnalysis>;
    private getExecutionPlan;
    private getPostgresExecutionPlan;
    private getMySQLExecutionPlan;
    private extractPostgresOperations;
    private extractMySQLOperations;
    private analyzeQueryStructure;
    private analyzeExecutionPlan;
    private generateOptimizationHints;
    private generateIndexSuggestion;
    private extractColumnsFromWhere;
    private extractTableName;
    private determineSeverity;
    private updateQueryPatterns;
    private normalizeQueryForPattern;
    private isFrequentQuery;
    getQueryPatterns(): QueryPattern[];
    getSlowQueryPatterns(): QueryPattern[];
    getOptimizationSuggestions(): QueryOptimizationSuggestion[];
    clearPatterns(): void;
}
