import type { JsonObject, ModelConfig, ProviderRequest, ProviderRequestOptions } from "@arnilo/prism"; /** * Resolve OpenRouter body `reasoning` from model defaults + per-turn override. * Request `options.compat.reasoning` wins key-by-key (Task 4 `openai_reasoning` family). * @see https://openrouter.ai/docs/guides/best-practices/reasoning-tokens */ export declare function resolveOpenRouterReasoning(model: ModelConfig, options: ProviderRequestOptions | undefined): JsonObject | undefined; /** * Whether assistant thinking blocks should be replayed as OpenRouter `reasoning` * (or `reasoning_content` alias) instead of being folded into text content. * Official docs require preserving reasoning across tool-call turns. */ export declare function openRouterPreserveThinking(request: ProviderRequest): boolean; /** * Strip OpenRouter-owned compat keys before opaque body spread so resolved * `reasoning` / routing / cache flags cannot be overwritten by raw passthrough. */ export declare function stripOpenRouterOwnedCompat(compat: JsonObject | undefined): JsonObject | undefined;