import { FunctionDefinition, AgentKitConfig, AgentResponse } from "./types";
import { Wallet } from "../utils/wallet";
/**
 * 1inch Agent Kit - Connect any LLM to 1inch DeFi protocols
 */
export declare class OneInchAgentKit {
    private openai;
    private config;
    private conversationState;
    constructor(config?: AgentKitConfig);
    /**
     * Initialize wallet (local for scripts, or wait for frontend wallet)
     */
    private initializeWallet;
    /**
     * Set wallet for frontend usage
     */
    setWallet(wallet: Wallet): void;
    /**
     * Get current wallet info
     */
    getWallet(): Wallet | null;
    /**
     * Get comprehensive system prompt for better parameter extraction
     */
    private getSystemPrompt;
    /**
     * Send a user prompt → let the model call your functions → return final answer.
     */
    chat(userPrompt: string, wallet?: Wallet): Promise<AgentResponse>;
    /**
     * Check if we should continue a previous action
     */
    private shouldContinueAction;
    /**
     * Continue with the next step of a multi-step action
     */
    private continueAction;
    /**
     * Execute buildOrder step
     */
    private executeBuildOrder;
    /**
     * Execute submitOrder step
     */
    private executeSubmitOrder;
    /**
     * Update conversation state based on function results
     */
    private updateConversationState;
    /**
     * Get available functions
     */
    getAvailableFunctions(): Promise<string[]>;
    /**
     * Check if a specific function is available
     */
    hasFunction(name: string): Promise<boolean>;
    /**
     * Get function definitions for external use
     */
    getFunctionDefinitions(): Promise<FunctionDefinition[]>;
}
/**
 * Convenience function for quick usage
 */
export declare function createAgent(config?: AgentKitConfig): Promise<OneInchAgentKit>;
/**
 * Legacy function for backward compatibility
 */
export declare function llmAgent(userPrompt: string, config?: AgentKitConfig): Promise<string>;
//# sourceMappingURL=llmAgent.d.ts.map