import { Contract, TronWeb } from "tronweb";
import { TransactionPayload } from "./payload";
import { Base58String, CallOptions, CardConfig, CardPurchaseOfDay, FeeTiers, SwapData, WalletAdapterSignTransactionFunc } from "./types";
export declare enum TronNetwork {
    Mainnet = 0,
    Nile = 1
}
export declare class TronZebecCardService {
    readonly network: TronNetwork;
    readonly cardContract: Contract;
    readonly usdtContract: Contract;
    readonly tronWeb: TronWeb;
    private readonly _signTransaction?;
    constructor(tronWeb: TronWeb, network?: TronNetwork, walletInterface?: {
        address: Base58String;
        signTransaction: WalletAdapterSignTransactionFunc;
    });
    get cardContractAddress(): string;
    get usdtAddress(): string;
    get signerAddress(): string;
    getCardConfig(callOptions?: CallOptions): Promise<CardConfig>;
    getFeeTiers(callOptions?: CallOptions): Promise<FeeTiers>;
    getUserVaultBalance(params: {
        userAddress: Base58String;
    }): Promise<string>;
    getCardPurchcaseOfDay(params: {
        userAddress: Base58String;
    }): Promise<CardPurchaseOfDay>;
    depositUsdt(params: {
        amount: string;
    }): Promise<TransactionPayload>;
    swapAndDeposit(params: {
        swapData: SwapData;
    }): Promise<TransactionPayload>;
    withdraw(params: {
        amount: string;
    }): Promise<TransactionPayload>;
    buyCard(params: {
        amount: string;
        email: string;
    }): Promise<TransactionPayload>;
    approve(params: {
        token: Base58String | Contract;
        spender: Base58String;
        amount: string;
    }): Promise<TransactionPayload | null>;
    private _createTransactionPayload;
}
