import { z } from 'zod';
import { BenchmarkRequest } from './sonar-benchmark-service.js';
export declare const AggregatedBenchmarkSchema: z.ZodObject<{
    metric: z.ZodString;
    value: z.ZodNumber;
    unit: z.ZodString;
    confidence: z.ZodNumber;
    sources: z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        value: z.ZodNumber;
        date: z.ZodString;
        weight: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        name: string;
        value: number;
        date: string;
        weight: number;
    }, {
        name: string;
        value: number;
        date: string;
        weight: number;
    }>, "many">;
    consensus: z.ZodEnum<["strong", "moderate", "weak"]>;
    recommendedValue: z.ZodNumber;
    range: z.ZodObject<{
        min: z.ZodNumber;
        max: z.ZodNumber;
        p25: z.ZodNumber;
        p75: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        min: number;
        max: number;
        p25: number;
        p75: number;
    }, {
        min: number;
        max: number;
        p25: number;
        p75: number;
    }>;
}, "strip", z.ZodTypeAny, {
    value: number;
    metric: string;
    unit: string;
    confidence: number;
    sources: {
        name: string;
        value: number;
        date: string;
        weight: number;
    }[];
    consensus: "strong" | "moderate" | "weak";
    recommendedValue: number;
    range: {
        min: number;
        max: number;
        p25: number;
        p75: number;
    };
}, {
    value: number;
    metric: string;
    unit: string;
    confidence: number;
    sources: {
        name: string;
        value: number;
        date: string;
        weight: number;
    }[];
    consensus: "strong" | "moderate" | "weak";
    recommendedValue: number;
    range: {
        min: number;
        max: number;
        p25: number;
        p75: number;
    };
}>;
export type AggregatedBenchmark = z.infer<typeof AggregatedBenchmarkSchema>;
export declare class BenchmarkAggregator {
    private logger;
    private sonarService?;
    private sources;
    private fmpApiKey?;
    constructor(config?: {
        sonarApiKey?: string;
        fmpApiKey?: string;
        enableSonar?: boolean;
        enableFMP?: boolean;
    });
    /**
     * Aggregate benchmarks from all available sources
     */
    aggregateBenchmarks(request: BenchmarkRequest): Promise<AggregatedBenchmark[]>;
    /**
     * Fetch benchmarks from Financial Modeling Prep API
     */
    private fetchFMPBenchmarks;
    /**
     * Fetch static benchmarks from local data
     */
    private fetchStaticBenchmarks;
    /**
     * Group benchmarks by metric name
     */
    private groupByMetric;
    /**
     * Normalize metric names for grouping
     */
    private normalizeMetricName;
    /**
     * Aggregate multiple sources for a single metric
     */
    private aggregateMetric;
    /**
     * Calculate percentile
     */
    private percentile;
    /**
     * Calculate variance
     */
    private calculateVariance;
    /**
     * Calculate average confidence across all benchmarks
     */
    private calculateAverageConfidence;
    /**
     * Get industry-specific adjustment factors
     */
    getIndustryAdjustments(industry: string, companySize?: string): Promise<{
        sizeMultiplier: number;
        complexityFactor: number;
        riskAdjustment: number;
    }>;
}
//# sourceMappingURL=benchmark-aggregator.d.ts.map