import { BaseCoreSDK } from "./../mixins/base-core-sdk";
import * as subgraph from "../subgraph";
import { TransactionResponse, TransactionRequest, Web3LibAdapter } from "@bosonprotocol/common";
import { BigNumberish } from "@ethersproject/bignumber";
export declare class FundsMixin<T extends Web3LibAdapter> extends BaseCoreSDK<T> {
    /**
     * Deposit funds by calling the `FundsHandlerFacet` contract.
     * This transaction only succeeds if there is an existing entity account for connected signer.
     * @param entityId - ID of the account to deposit funds for.
     * @param fundsAmount - Amount of funds.
     * @param fundsTokenAddress - Address of funds token.
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    depositFunds(entityId: BigNumberish, fundsAmount: BigNumberish, fundsTokenAddress: string, overrides: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    depositFunds(entityId: BigNumberish, fundsAmount: BigNumberish, fundsTokenAddress?: string, overrides?: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Withdraw selected funds by calling the `FundsHandlerFacet` contract.
     * This transaction only succeeds if there is an existing account for connected signer.
     * @param entityId - ID of seller/buyer/agent account to withdraw funds for.
     * @param tokensToWithdraw - Addresses of funds tokens to withdraw.
     * @param amountsToWithdraw - Amounts of funds token to withdraw.
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    withdrawFunds(entityId: BigNumberish, tokensToWithdraw: Array<string>, amountsToWithdraw: Array<BigNumberish>, overrides: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    withdrawFunds(entityId: BigNumberish, tokensToWithdraw: Array<string>, amountsToWithdraw: Array<BigNumberish>, overrides?: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Withdraw all available funds by calling the `FundsHandlerFacet` contract.
     * This transaction only succeeds if there is an existing account for connected signer.
     * @param entityId - ID of seller/buyer/agent account to withdraw funds for.
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    withdrawAllAvailableFunds(entityId: BigNumberish, overrides: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    withdrawAllAvailableFunds(entityId: BigNumberish, overrides?: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Returns funds entity from subgraph.
     * @param fundsId - ID of funds entity.
     * @param queryVars - Optional query variables to skip, order or filter.
     * @returns Funds entity from subgraph.
     */
    getFundsById(fundsId: BigNumberish, queryVars?: subgraph.GetFundsByIdQueryVariables): Promise<subgraph.FundsEntityFieldsFragment>;
    /**
     * Returns funds entities from subgraph.
     * @param queryVars - Optional query variables to skip, order or filter.
     * @returns Funds entities from subgraph.
     */
    getFunds(queryVars?: subgraph.GetFundsQueryVariables): Promise<subgraph.FundsEntityFieldsFragment[]>;
}
//# sourceMappingURL=mixin.d.ts.map