import { type HealthTransition } from "./health-store.js"; import type { ResolvedEntry } from "./stream.js"; import type { FailureClassification } from "./types.js"; /** * A candidate entry normalized to a single internal shape, regardless of which * of the three accepted `ProviderEntry` forms the user wrote. */ import { RouterAttemptAdmission } from "./router-attempt-admission.js"; export declare class RouterAttemptRuntime extends RouterAttemptAdmission { protected handleFailure(error: unknown, candidate: ResolvedEntry, filteredIndex: number, candidates: ResolvedEntry[], errors: unknown[], phase: "generate" | "stream-open", classification: FailureClassification, attempt: number, attemptLimit: number, deadline: number | undefined, startedAt: number, healthTransition?: HealthTransition, inFlight?: number): boolean; protected routeFailure(errors: unknown[], capacitySkips: number, healthSkips: number): unknown; protected hasRetryCandidate(candidates: ResolvedEntry[], startIndex: number, deadline: number | undefined, releasingIndex?: number): boolean; protected classify(error: unknown): FailureClassification; protected classifyAttemptFailure(error: unknown, callerSignal: AbortSignal | undefined): FailureClassification; protected shouldSurfaceDirectly(classification: FailureClassification): boolean; protected attemptTiming(deadline: number | undefined): { code: "attempt_timeout" | "total_timeout"; timeoutMs: number | undefined; }; protected timeoutDiagnosticDuration(code: "attempt_timeout" | "total_timeout"): number | undefined; protected backoffAfterAttempt(attempts: number, signal: AbortSignal | undefined, deadline: number | undefined): Promise; protected backoffCandidate(candidate: ResolvedEntry, attempts: number, signal: AbortSignal | undefined, deadline: number | undefined): Promise; }