/**
 * Retry wrapper with exponential backoff and jitter.
 *
 * Retries on network errors (no status), HTTP 429 (rate limit / transient),
 * and 5xx server errors. Does not retry other 4xx client errors (non-retryable).
 */
export interface RetryOptions {
    maxRetries: number;
    baseMs: number;
    maxMs: number;
}
/**
 * Classify an error as transient/retryable.
 *
 * - 429 (Too Many Requests): transient rate-limit → retry with backoff.
 * - 5xx: server error → retry.
 * - Network errors (no status): retry.
 * - Other 4xx: terminal client error → do NOT retry.
 *
 * Exported so the live write path (sync-coordinator) classifies failures the
 * same way before deciding whether to enqueue into the retry queue (0865 T-007).
 */
export declare function isRetryable(error: unknown): boolean;
export declare function withRetry<T>(fn: () => Promise<T>, opts: RetryOptions): Promise<T>;
//# sourceMappingURL=retry-wrapper.d.ts.map