import { StructuredTool } from "@langchain/core/tools";
import { z } from "zod";
import { KibanAgentKit } from "../agent/KibanAgentKit";
/**
 * LangChain tool for checking ERC20 token information and balance
 */
export declare class TokenInfoTool extends StructuredTool {
    name: string;
    description: string;
    schema: z.ZodObject<{
        tokenAddress: z.ZodString;
        walletAddress: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        tokenAddress: string;
        walletAddress?: string | undefined;
    }, {
        tokenAddress: string;
        walletAddress?: string | undefined;
    }>;
    private service;
    constructor(agent: KibanAgentKit);
    protected _call(input: z.input<typeof this.schema>): Promise<string>;
}
/**
 * LangChain tool for approving token spending
 */
export declare class TokenApprovalTool extends StructuredTool {
    name: string;
    description: string;
    schema: z.ZodObject<{
        tokenAddress: z.ZodString;
        spenderAddress: z.ZodString;
        amount: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        amount: string;
        tokenAddress: string;
        spenderAddress: string;
    }, {
        amount: string;
        tokenAddress: string;
        spenderAddress: string;
    }>;
    private service;
    constructor(agent: KibanAgentKit);
    protected _call(input: z.input<typeof this.schema>): Promise<string>;
}
/**
 * LangChain tool for checking token allowance
 */
export declare class TokenAllowanceTool extends StructuredTool {
    name: string;
    description: string;
    schema: z.ZodObject<{
        tokenAddress: z.ZodString;
        ownerAddress: z.ZodString;
        spenderAddress: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        tokenAddress: string;
        spenderAddress: string;
        ownerAddress: string;
    }, {
        tokenAddress: string;
        spenderAddress: string;
        ownerAddress: string;
    }>;
    private service;
    constructor(agent: KibanAgentKit);
    protected _call(input: z.input<typeof this.schema>): Promise<string>;
}
