import type { StreamFn } from "@mariozechner/pi-agent-core";
import type { SymiConfig } from "../../config/config.js";
/**
 * Resolve provider-specific extra params from model config.
 * Used to pass through stream params like temperature/maxTokens.
 *
 * @internal Exported for testing only
 */
export declare function resolveExtraParams(params: {
    cfg: SymiConfig | undefined;
    provider: string;
    modelId: string;
}): Record<string, unknown> | undefined;
export declare function createOpenAIResponsesStoreWrapper(baseStreamFn: StreamFn | undefined): StreamFn;
export declare function resolveAnthropicBetas(extraParams: Record<string, unknown> | undefined, provider: string, modelId: string): string[] | undefined;
export declare function createAnthropicBetaHeadersWrapper(baseStreamFn: StreamFn | undefined, betas: string[]): StreamFn;
/**
 * Create a streamFn wrapper that injects tool_stream=true for Z.AI providers.
 *
 * Z.AI's API supports the `tool_stream` parameter to enable real-time streaming
 * of tool call arguments and reasoning content. When enabled, the API returns
 * progressive tool_call deltas, allowing users to see tool execution in real-time.
 *
 * @see https://docs.z.ai/api-reference#streaming
 */
export declare function createZaiToolStreamWrapper(baseStreamFn: StreamFn | undefined, enabled: boolean): StreamFn;
/**
 * Apply extra params (like temperature) to an agent's streamFn.
 * Also adds OpenRouter app attribution headers when using the OpenRouter provider.
 *
 * @deprecated The 6-wrapper chain in this function has been superseded by
 * `createModelAwareStreamFn` in `model-aware-stream.ts`.  `attempt.ts`
 * now calls `createModelAwareStreamFn` directly and uses the individual
 * exported wrappers (Anthropic betas, Z.AI, OpenAI store) separately.
 * This function is preserved for backward compatibility with existing tests.
 *
 * @internal Exported for testing
 */
export declare function applyExtraParamsToAgent(agent: {
    streamFn?: StreamFn;
}, cfg: SymiConfig | undefined, provider: string, modelId: string, extraParamsOverride?: Record<string, unknown>): void;
