import type { RequestOptions, CVESource, ApiResponse, SourceApiResponse } from '../types/cve.js';
export declare class SourceManager {
    private sources;
    private appConfig;
    constructor();
    getEnabledSources(): CVESource[];
    getAllSources(): Record<string, CVESource>;
    getSource(name: string): CVESource | undefined;
    getScoringConfig(): {
        exploitAvailabilityWeight: number;
        cvssWeight: number;
        ageWeight: number;
    };
    getEPSSConfig(): import("../types/cve.js").EPSSConfig | undefined;
    canMakeRequest(sourceName: string): Promise<boolean>;
    makeRequest(sourceName: string, url: string, options?: RequestOptions): Promise<ApiResponse>;
    getBestSourceForOperation(operation: string): CVESource | null;
    private findSourceKey;
    makeRequestWithFallback(operation: string, requestBuilder: (source: CVESource) => {
        url: string;
        options: RequestOptions;
    }, _maxRetries?: number): Promise<SourceApiResponse>;
    getSourceHealth(): Promise<Record<string, {
        status: string;
        requestCount?: number;
        lastRequest?: string;
        waitTime?: number;
        features?: string[];
        hasApiKey?: boolean;
    }>>;
    private checkIfSourceHasApiKey;
}
//# sourceMappingURL=source-manager.d.ts.map