/** * Whether a numeric HTTP status is in the canonical transient/retryable set: * 408 (Request Timeout), 429 (Too Many Requests), and any 5xx. * * This is a pure predicate over a status code already in hand — distinct from * {@link classify}, which inspects a whole error (including message text) and * may match more. Use this when you only have a `status: number`. */ export declare function isTransientStatus(status: number | undefined): boolean; /** Hook for provider-specific transient detection that the error module must not import directly. */ export interface ProviderRetryableHooks { /** Provider id of the failing request, used to gate provider-specific checks. */ provider?: string; /** Provider-specific transient predicate (e.g. Copilot `model_not_supported`). */ isProviderTransient?: (error: Error) => boolean; } /** * Whether a provider stream error should be retried against the same credential. * * Account-level usage/quota limits are deliberately treated as **non**-retryable * here — they are owned by the credential-rotation layer (auth-gateway / * `streamSimple` a/b/c policy), not this seconds-scale provider backoff. * * Provider-specific transient cases are injected via {@link ProviderRetryableHooks} * so this stays free of provider imports. */ export declare function isProviderRetryableError(error: unknown, hooks?: ProviderRetryableHooks): boolean;