import type { CVESearchFilters, CVE, CVESearchResult } from '../types/cve.js';
import { BaseCVESourceImplementation, SourceValidationResult, type RequestOptions } from './base.js';
export declare class NVDSourceImplementation extends BaseCVESourceImplementation {
    buildSearchRequest(filters: CVESearchFilters): {
        url: string;
        options: RequestOptions;
    };
    buildDetailsRequest(cveId: string): {
        url: string;
        options: RequestOptions;
    };
    normalizeSearchResults(data: Record<string, unknown>): CVESearchResult;
    normalizeCVEData(data: Record<string, unknown>): CVE;
    private normalizeNVDMetrics;
    private normalizeNVDReferences;
    private formatDate;
    testConnection(): Promise<boolean>;
    /**
     * Enhanced connection test that respects rate limits
     */
    testConnectionWithRateLimit(): Promise<boolean>;
    /**
     * Validates NVD-specific configuration
     */
    protected validateSourceSpecificConfig(): SourceValidationResult;
    /**
     * Validates NVD API key format and configuration
     */
    protected validateSourceSpecificApiKey(): SourceValidationResult;
    /**
     * NVD-specific API key environment variable from configuration
     */
    getApiKeyEnvironmentVariable(): string;
    /**
     * Alternative environment variables for NVD API key
     */
    getAlternativeApiKeyEnvironmentVariables(): string[];
    /**
     * NVD API key identifier for mapping
     */
    getApiKeyIdentifier(): string;
    /**
     * Check if this source matches NVD-related identifiers
     */
    matchesSourceIdentifier(identifier: string): boolean;
    /**
     * Validate if the API key can be used by NVD
     */
    canUseApiKey(apiKey: string): boolean;
    /**
     * Validates NVD-specific search parameters
     */
    private validateNVDSearchParameters;
    /**
     * Override base class authentication for NVD-specific API key header
     */
    protected getAuthHeaders(): Record<string, string>;
    private getRequestOptions;
    /**
     * Validates NVD API response structure to detect API changes early
     */
    private validateNVDApiResponse;
}
//# sourceMappingURL=nvd.d.ts.map