import { ethers } from 'ethers';
import { DepositData, DepositForOperatorData, UserBalance, WithdrawData, WithdrawEarningsData } from './types';
import { NetworkType } from '@config/index';
import { SmartWalletBundlerClient } from '@utils/smart-wallet';
export declare class EscrowModule {
    private smartWalletBundlerClientPromise?;
    private provider;
    private wallet;
    private networkType;
    constructor(provider: ethers.Provider, wallet?: ethers.Wallet, networkType?: NetworkType, smartWalletBundlerClientPromise?: Promise<SmartWalletBundlerClient> | undefined);
    getUserBalance(token: string, walletAddress?: string, isOperator?: boolean): Promise<UserBalance>;
    getSmartWalletDetails(): Promise<{
        accountAddress: string;
        balance: string;
    }>;
    depositBalance({ token, amount, onSuccessCallback, onFailureCallback }: DepositData): Promise<any>;
    private depositBalanceGasless;
    withdrawBalance({ token, amount, operator, onSuccessCallback, onFailureCallback, }: WithdrawData): Promise<any>;
    private withdrawBalanceGasless;
    getProviderEarnings(providerAddress: string, tokenAddress: string): Promise<{
        earned: string;
        withdrawn: string;
        balance: string;
    }>;
    getFizzEarnings(fizzAddress: string, tokenAddress: string): Promise<{
        earned: string;
        withdrawn: string;
        balance: string;
    }>;
    withdrawEarnings({ providerAddress, fizzId, token, amount }: WithdrawEarningsData): Promise<any>;
    depositForOperators({ token, amount, operatorAddresses, onSuccessCallback, onFailureCallback, }: DepositForOperatorData): Promise<any>;
    private depositForOperatorsGasless;
}
//# sourceMappingURL=index.d.ts.map