import type { AIProviderName } from "../constants/enums.js";
import type { NeurolinkCredentials, OpenAICompatBuildBodyArgs } from "../types/index.js";
import { OpenAIChatCompletionsProvider } from "./openaiChatCompletionsBase.js";
declare const isNimFieldRejection: (body: string, field: string) => boolean;
/**
 * Strip an offending field from a JSON request body and return the rebuilt
 * stringified body. Returns `null` if the body isn't JSON-parseable or the
 * field isn't present (signal: nothing to retry).
 */
declare const stripFieldFromJsonBody: (body: string, field: "reasoning_budget" | "chat_template") => string | null;
/**
 * NVIDIA NIM Provider — native HTTP+SSE, no AI SDK.
 *
 * Wraps NVIDIA's hosted (or self-hosted) inference endpoints.
 * Passes NIM-specific extras (top_k, min_p, repetition_penalty,
 * chat_template_kwargs.reasoning_budget) via adjustBuildBodyOptions.
 * reasoning_content surfacing is a pending base-client follow-up (not emitted natively yet); all other behavior is preserved.
 *
 * @see https://docs.api.nvidia.com/nim/reference/
 */
export declare class NvidiaNimProvider extends OpenAIChatCompletionsProvider {
    constructor(modelName?: string, sdk?: unknown, _region?: string, credentials?: NeurolinkCredentials["nvidiaNim"]);
    protected getProviderName(): AIProviderName;
    protected getDefaultModel(): string;
    /**
     * Inject NIM-specific body fields (top_k, min_p, repetition_penalty,
     * min_tokens, chat_template, chat_template_kwargs) into the wire body.
     *
     * The base passes the full StreamOptions as `opts` at runtime (typed
     * narrowly as OpenAICompatBuildBodyArgs["options"] for standard fields).
     * We access thinkingLevel via an indexed-access cast since the runtime
     * value is the full StreamOptions object.
     */
    protected adjustBuildBodyOptions(_modelId: string, opts: OpenAICompatBuildBodyArgs["options"]): OpenAICompatBuildBodyArgs["options"] & Record<string, unknown>;
    protected formatProviderError(error: unknown): Error;
    validateConfiguration(): Promise<boolean>;
    getConfiguration(): {
        provider: AIProviderName;
        model: string;
        defaultModel: string;
        baseURL: string;
    };
}
export { isNimFieldRejection, stripFieldFromJsonBody };
