import { KibanAgentKit } from "../../agent/KibanAgentKit";
import { Address, Hash } from "viem";
export interface TokenInfo {
    address: Address;
    name: string;
    symbol: string;
    decimals: number;
    balance: string;
    balanceRaw: bigint;
}
export interface TokenMetadata {
    name: string;
    symbol: string;
    decimals: number;
    totalSupply: bigint;
}
export interface SendTokenParams {
    token: string;
    to: string;
    amount: string;
}
export interface ApproveParams {
    token: string;
    spender: string;
    amount: string;
}
export interface AllowanceParams {
    token: string;
    owner: string;
    spender: string;
}
export interface TransactionResult {
    hash: Hash;
}
export interface TransactionReceipt {
    status: "success" | "failure";
    hash: Hash;
    blockNumber: bigint;
    gasUsed: bigint;
}
/**
 * Core token service for token-related operations
 */
export declare class TokenService {
    private agent;
    constructor(agent: KibanAgentKit);
    /**
     * Get information about a token
     */
    getTokenInfo(tokenAddress: string): Promise<TokenInfo>;
    /**
     * Send tokens (ETH or ERC20)
     */
    sendTokens(params: SendTokenParams): Promise<TransactionResult>;
    /**
     * Wait for a transaction to be confirmed
     */
    waitForTransaction(hash: Hash): Promise<any>;
    /**
     * Approve token spending
     */
    approveSpending(params: ApproveParams): Promise<TransactionResult>;
    /**
     * Get token metadata
     */
    getTokenMetadata(tokenAddress: string): Promise<TokenMetadata>;
    /**
     * Get token allowance
     */
    getAllowance(params: AllowanceParams): Promise<bigint>;
}
