/**
 * Shared provider-error classification. Every provider's
 * `formatProviderError(error)` delegates here instead of hand-rolling its
 * own TimeoutError-check → .includes()-chain → `new XError(...)` ladder.
 *
 * `classifyProviderError` picks the Error subclass + message; it does NOT
 * stamp statusCode/isRetryable/retryAfterMs onto the result — that
 * passthrough already happens generically in
 * `BaseProvider.handleProviderError()` (src/lib/core/baseProvider.ts) for
 * every provider's returned error, migrated or not, so duplicating it here
 * would risk the two copies disagreeing.
 */
import { type ProviderErrorRule } from "../types/index.js";
/**
 * Classify a raw provider error into a NeuroLink `ProviderError` subclass.
 * `rules` are tried in order; the first match wins. `TimeoutError` is
 * always handled first, ahead of any rule table — every provider treated
 * it identically before this change, so it is not made overridable.
 */
export declare function classifyProviderError(error: unknown, rules: ProviderErrorRule[], provider: string, modelName?: string): Error;
/**
 * Generic fallback rule table covering the five categories every
 * OpenAI-compatible provider already hand-rolled near-identically:
 * auth (401), rate limit (429), model-not-found (404), network/connection
 * errors, and 5xx server errors. Providers with a provider-specific auth
 * message (naming the exact env var) prepend one override rule and spread
 * this table after it — see errorClassifier usage in any migrated
 * provider's formatProviderError for the pattern.
 */
export declare const DEFAULT_ERROR_RULES: ProviderErrorRule[];
