import { type RetryErrorSnapshot } from "./retry-snapshot.js"; import type { ShouldRetryThisError } from "./types.js"; export type { ShouldRetryThisError } from "./types.js"; export declare function isProviderCredentialCode(value: unknown): boolean; export declare function isModelUnavailableCode(value: unknown): boolean; export declare function isProviderUnavailableCode(value: unknown): boolean; export declare function hasProviderCredentialCodeInDetails(value: string): boolean; export declare function hasModelUnavailableCodeInDetails(value: string): boolean; export declare function hasProviderUnavailableCodeInDetails(value: string): boolean; export declare function hasRoutingUnitUnavailableDetails(value: string): boolean; export declare function recordFailure(errors: unknown[], error: unknown): void; export declare function copyFailureRecord(source: unknown[], target: unknown[]): void; export declare function shouldRetryErrorSnapshot(snapshot: RetryErrorSnapshot): boolean; /** * Reduce an unknown error to the two things the classifier reasons about: a * numeric `statusCode` (when present) and a lowercased `message` to pattern-match. * * The `error` field of a v4 stream error part is typed `unknown` and the * openai-compatible provider may deliver an `Error`, a plain string, or an * arbitrary object — so this must cope with all of them. */ export declare function normalizeError(error: unknown): { statusCode?: number; message: string; }; export declare function defaultShouldRetryThisError(error: unknown): boolean; /** Resolve the classifier to use: the caller's hook, or the default. */ export declare function resolveShouldRetry(hook?: ShouldRetryThisError): ShouldRetryThisError; /** Run a classifier defensively — a throw inside it degrades to "do not retry". */ export declare function safeShouldRetry(shouldRetry: ShouldRetryThisError, error: unknown): boolean; /** * Build the error to surface when every candidate has failed. * * - 0 errors (defensive; unreachable in practice) -> a generic Error. * - 1 error -> that error verbatim (identity preserved for the common case). * - many -> an `AggregateError` whose `.errors` holds every candidate error and * whose `.message` embeds the last error's message. */ export declare function surfaceFailure(errors: unknown[], logicalId: string): unknown;