import type { LanguageModelV4GenerateResult } from "@ai-sdk/provider"; import type { HealthTransition } from "./health-store.js"; import type { ResolvedEntry } from "./stream.js"; import type { FailureClassification, OnRouterAttempt, RouterOrderingToken } 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 { RouterModelState } from "./router-model-state.js"; export declare class RouterAttemptObservability extends RouterModelState { protected assertValidResult(result: LanguageModelV4GenerateResult): LanguageModelV4GenerateResult; protected emitAttempt(info: Omit[0], "entry" | "logicalId"> & { candidate: ResolvedEntry; }): void; protected emitSkipped(candidates: ResolvedEntry[], phase: "generate" | "stream-open", reason: "concurrency" | "cooldown" | "max-attempts"): void; protected markFailure(index: number, classification: FailureClassification, attemptStartedAt?: RouterOrderingToken): HealthTransition; protected markFailureIfEnabled(index: number, classification: FailureClassification, attemptStartedAt?: RouterOrderingToken): HealthTransition | undefined; protected markSuccess(index: number, attemptStartedAt?: RouterOrderingToken): HealthTransition | undefined; protected markSuccessIfEnabled(index: number, attemptStartedAt?: RouterOrderingToken): HealthTransition | undefined; protected becameUnavailable(index: number, selectedAt: RouterOrderingToken): boolean; protected nextOrderingToken(): RouterOrderingToken; protected isBudgetFailure(failure: FailureClassification): boolean; protected suppressesBudget(failure: FailureClassification): boolean; protected observeRequestFailure(eligible: boolean, suppressed: boolean): void; }