export declare function getPoolSize(): number; export declare function getPoolLabels(): string[]; export declare function nextAvailableKey(): Promise<{ key: string; label: string; } | undefined>; export declare function markKeyRateLimited(key: string, durationMs?: number): void; export declare function fetchGeminiWithPool(buildUrl: (key: string) => string, init: RequestInit, options?: { maxAttempts?: number; onRetry?: (label: string, status: number) => void; fetcher?: typeof fetch; /** * Explicit API key to use instead of the process.env-backed round-robin * pool. When set (non-empty), the global pool is bypassed entirely: every * attempt uses this key and no cooldown bookkeeping is applied. This lets a * library caller inject a key resolved from its own env (e.g. a backend's * `input.env`) without mutating process.env. Falls back to the pool when * absent. */ keyOverride?: string; }): Promise; export declare function _resetPoolForTests(): void; //# sourceMappingURL=gemini-key-pool.d.ts.map