import { ethers } from "ethers";
import { EventEmitter } from "events";
export interface TokenOperationResult {
    success: boolean;
    transactionHash?: string;
    error?: string;
    data?: any;
}
export declare class VeniceToken extends EventEmitter {
    private contract;
    private provider;
    private signer;
    private address;
    constructor(tokenAddress?: string);
    /**
     * Initialize the token contract with provider and signer
     */
    initialize(provider: ethers.Provider, signer?: ethers.Signer): Promise<void>;
    /**
     * Cleanup resources
     */
    cleanup(): Promise<void>;
    /**
     * Get token balance for an address
     */
    getBalance(address: string): Promise<TokenOperationResult>;
    /**
     * Check allowance for spender
     */
    getAllowance(owner: string, spender: string): Promise<TokenOperationResult>;
    /**
     * Approve spender to use tokens
     */
    approve(spender: string, amount: bigint): Promise<TokenOperationResult>;
}
