import type { EventTracer, MonitoringEvent } from '@recombine-ai/telescope'; import type { LlmProviderInfo } from '../interfaces/adapter'; import type { Logger } from '../interfaces/other'; export type ProviderErrorReport = { kind: 'auth-failure' | 'quota-exceeded'; event: MonitoringEvent; } /** * Ordinary throttling. Reported back so the caller can log it, but deliberately not a monitoring * event: it clears itself within the window and would bury the quota signal it looks like. */ | { kind: 'rate-limit'; statusCode: number; errorCode?: string; errorMessage: string; }; /** * Classifies a thrown value as a provider auth/quota failure, or returns `undefined` if it is * anything else (a bug in a step, a network drop, a malformed response). */ export declare function classifyProviderError(error: unknown, providerInfo?: LlmProviderInfo): ProviderErrorReport | undefined; /** * Classifies `error` and emits the matching monitoring event. Never throws: monitoring must not be * able to turn a provider outage into a second, different failure. */ export declare function reportProviderError(error: unknown, deps: { logger: Logger; eventTracer?: EventTracer; providerInfo?: LlmProviderInfo; }): ProviderErrorReport | undefined; //# sourceMappingURL=provider-errors.d.ts.map