import type { Logger } from 'pino'; import type { StandardSeverity } from '../scanner-common.js'; import type { ExtractedPackage } from './maven/types.js'; declare class RateLimiter { private tokens; private lastRefill; private readonly maxTokens; private readonly refillRate; private queue; private refillTimer; constructor(maxTokens?: number, refillRate?: number); private refill; private processQueue; acquire(tokens?: number): Promise; reset(): void; } export declare const osvRateLimiter: RateLimiter; export interface OSVPackage { name: string; ecosystem: string; purl?: string; } export interface OSVQueryBatch { queries: Array<{ package: OSVPackage; version?: string; }>; } export interface OSVSeverity { type: string; score: string; } export interface OSVAffected { package: OSVPackage; ranges?: Array<{ type: string; events: Array<{ introduced?: string; fixed?: string; }>; }>; versions?: string[]; database_specific?: { severity?: string; }; ecosystem_specific?: Record; } export interface OSVVulnerability { id: string; summary?: string; details?: string; aliases?: string[]; modified?: string; published?: string; database_specific?: { severity?: string; cwe_ids?: string[]; }; severity?: OSVSeverity[]; affected?: OSVAffected[]; references?: Array<{ type: string; url: string; }>; } export interface OSVQueryResponse { vulns?: OSVVulnerability[]; } export interface OSVBatchResponse { results: OSVQueryResponse[]; } export declare function extractSeverity(vuln: OSVVulnerability): StandardSeverity; export declare function extractFixedVersion(vuln: OSVVulnerability): string | undefined; export declare function queryOSVBatch(packages: ExtractedPackage[], logger: Logger): Promise>; export {}; //# sourceMappingURL=osv-api.d.ts.map