import type { LLMProviderConfig } from "@superblocksteam/library-shared/types";
export interface LLMConfigResult {
    thinkingEnabled: boolean;
    thinkingBudgetTokens: number;
    interleavedThinking: boolean;
    maxOutputTokens: number;
    providerOptions?: {
        anthropic: Record<string, any>;
        bedrock: Record<string, any>;
    };
    headers: Record<string, string | undefined>;
}
export interface ThinkingOptionsParams {
    thinkingEnabled: boolean;
    thinkingBudgetTokens: number;
    interleavedThinking: boolean;
}
export interface ThinkingProviderOptions {
    anthropic?: Record<string, any>;
    bedrock?: Record<string, any>;
    headers: Record<string, string | undefined>;
}
export declare function usesAdaptiveEffort(coreModel: string | undefined): boolean;
/**
 * Builds the provider-specific thinking config for a given core model.
 *
 * This is a pure function so retries that swap models (e.g. opus-4-7 →
 * sonnet-4-6 → opus-4-7) can call it per attempt to emit the shape the
 * current model accepts. See {@link usesAdaptiveEffort}.
 */
export declare function buildThinkingProviderOptions(coreModel: string | undefined, params: ThinkingOptionsParams): ThinkingProviderOptions;
/**
 * Processes LLM config and returns the configuration options for AI SDK calls.
 *
 * @param llmConfig - The LLM provider configuration
 * @param defaultBudgetTokens - Default thinking budget if not specified (default: 5000)
 * @param logContext - Optional context string for logging
 */
export declare function processLLMConfig(llmConfig: LLMProviderConfig | undefined, defaultBudgetTokens?: number, logContext?: string): LLMConfigResult;
//# sourceMappingURL=llm-config-utils.d.ts.map