/**
 * Claude-Compatible Proxy Routes
 *
 * Exposes Anthropic-compatible /v1/messages, /v1/models, and /v1/messages/count_tokens
 * endpoints. ALL requests are routed through ctx.neurolink.generate() / ctx.neurolink.stream()
 * -- no direct HTTP calls to Anthropic.
 *
 * An optional ModelRouter can remap incoming model names to different
 * provider/model pairs (e.g. "claude-sonnet-4-20250514" -> vertex/gemini-2.5-pro).
 * Without a router, models are passed through to the Anthropic provider.
 */
import type { ModelRouter } from "../../proxy/modelRouter.js";
import type { ParsedClaudeError, ParsedClaudeRequest, RouteGroup } from "../../types/index.js";
/**
 * Create Claude-compatible proxy routes.
 *
 * Every request flows through ctx.neurolink.generate() or ctx.neurolink.stream().
 * No direct fetch() calls to api.anthropic.com.
 *
 * @param modelRouter - Optional model router for remapping model names.
 * @param basePath    - Base path prefix (default: "" since Claude API uses /v1/...).
 * @returns RouteGroup with Claude-compatible endpoints.
 */
export declare function createClaudeProxyRoutes(modelRouter?: ModelRouter, basePath?: string, accountStrategy?: "round-robin" | "fill-first", passthroughMode?: boolean): RouteGroup;
export declare function getTransientSameAccountRetryDelayMs(retryNumber: number): number;
/**
 * Parse a Claude error payload when available.
 */
export declare function parseClaudeErrorBody(errBody: string): ParsedClaudeError;
/**
 * Detect malformed request errors that should not trigger account/provider failover.
 */
export declare function isInvalidRequestError(status: number, errBody: string): boolean;
export declare function buildProxyFallbackOptions(parsed: ParsedClaudeRequest, overrides?: {
    provider?: string;
    model?: string;
}): Record<string, unknown>;
/**
 * Detect transient upstream failures that should trigger account/provider failover.
 *
 * Includes Cloudflare 52x statuses and Anthropic 400/api_error wrappers that
 * carry transient HTML responses (e.g. 520 pages) inside `error.message`.
 */
export declare function isTransientHttpFailure(status: number, errBody: string): boolean;
