/** One raw-thinking envelope for a provider choice, shared by both routing paths. */
import type { LLMProvider, LLMResponse } from '../provider-contract/types.js';
import type { ThinkingHandler } from './types.js';
/** Plain data only; handler functions stay in the chart's build-time closure. */
export declare function tagThinkingResponse(response: LLMResponse, answeredBy: string): LLMResponse;
/** Decode only with the handler belonging to the transport that answered. */
export declare function dispatchThinkingHandler(id: string, handlers: Readonly<Record<string, ThinkingHandler | undefined>>, untagged?: ThinkingHandler): ThinkingHandler;
/** Keep explicit override/null intent while routing declared handlers by list index. */
export declare function thinkingForProviders(provider: LLMProvider, providers?: readonly LLMProvider[], override?: ThinkingHandler | null): ThinkingHandler | undefined;
