import { GthConfig } from '#src/config.js';
import type { AnthropicInput } from '@langchain/anthropic';
import type { BaseChatModel, BaseChatModelParams } from '@langchain/core/language_models/chat_models';
import { AIMessage } from '@langchain/core/messages';
import { BinaryOperatorAggregate, Messages, StateType } from '@langchain/langgraph';
/**
 * Function to process JSON config and create Anthropic LLM instance
 */
export declare function processJsonConfig(llmConfig: AnthropicInput & BaseChatModelParams): Promise<BaseChatModel>;
export declare function init(configFileName: string): void;
export declare function postProcessJsonConfig(config: GthConfig): GthConfig;
/**
 * There's something off with calling server tools with ReAct agent,
 * the tool is not added in react_agent_executor because it is not Runnable,
 * but the tool_node explodes because LLM reports calling non-existing tool.
 * This method removes tool calls from messages, leaving the resulting content.
 * This method seems unnecessary with OpenAI, but is needed for Anthropic,
 * OpenAI does not need a name on the tool and does not seem to return server_tool_use.
 */
export declare function postModelHook(state: StateType<{
    messages: BinaryOperatorAggregate<AIMessage[], Messages>;
}>): StateType<{
    messages: BinaryOperatorAggregate<AIMessage[], Messages>;
}>;
