import { BaseCoreSDK } from "./../mixins/base-core-sdk";
import * as accounts from ".";
import * as subgraph from "../subgraph";
import { TransactionResponse, TransactionRequest, Log, Web3LibAdapter } from "@bosonprotocol/common";
import { BigNumberish, BigNumber } from "@ethersproject/bignumber";
import { offers } from "..";
export declare class AccountsMixin<T extends Web3LibAdapter> extends BaseCoreSDK<T> {
    /**
     * Returns seller entity from subgraph.
     * @param sellerId - ID of seller entity to query for.
     * @param queryVars - Optional query variables to skip, order or filter.
     * @returns Seller entity from subgraph.
     */
    getSellerById(sellerId: BigNumberish, queryVars?: accounts.subgraph.SingleSellerQueryVariables): Promise<subgraph.SellerFieldsFragment>;
    /**
     * Returns seller entity from subgraph.
     * @param assistant - Assistant address of seller entity to query for.
     * @param queryVars - Optional query variables to skip, order or filter.
     * @returns Seller entity from subgraph.
     */
    getSellerByAssistant(assistant: string, queryVars?: subgraph.GetSellersQueryQueryVariables): Promise<subgraph.SellerFieldsFragment>;
    /**
     * Returns seller entity from subgraph.
     * @param admin - Admin address of seller entity to query for.
     * @param queryVars - Optional query variables to skip, order or filter.
     * @returns Seller entity from subgraph.
     */
    getSellerByAdmin(admin: string, queryVars?: subgraph.GetSellersQueryQueryVariables): Promise<subgraph.SellerFieldsFragment>;
    /**
     * Returns seller entities from subgraph.
     * @param treasury - Treasury address of seller entities to query for.
     * @param queryVars - Optional query variables to skip, order or filter.
     * @returns Seller entities from subgraph.
     */
    getSellersByTreasury(treasury: string, queryVars?: subgraph.GetSellersQueryQueryVariables): Promise<subgraph.SellerFieldsFragment[]>;
    /**
     * Returns seller entity from subgraph. Matches `assistant`, `clerk`, `admin` or `treasury`.
     * @param address - Address of seller entity to query for.
     * @param queryVars - Optional query variables to skip, order or filter.
     * @returns Seller entity from subgraph.
     */
    getSellersByAddress(address: string, queryVars?: subgraph.GetSellersQueryQueryVariables): Promise<subgraph.SellerFieldsFragment[]>;
    /**
     * Returns the seller id found in the subgraph, if any, based on an authTokenId owned by the specified address
     * @param address - Address of seller entity to query for.
     * @param tokenType - type of authToken to look for.
     * @returns sellerId if found
     */
    searchSellerFromAuthToken(address: string, tokenType: number): Promise<string>;
    /**
     * Returns seller entity from subgraph that owns the given auth token (if any).
     * @param tokenId - tokenId of the Auth Token.
     * @param tokenType - Type of the Auth Token (1 for LENS, ...).
     * @param queryVars - Optional query variables to skip, order or filter.
     * @returns Seller entity from subgraph.
     */
    getSellerByAuthToken(tokenId: string, tokenType: number, queryVars?: subgraph.GetSellersQueryQueryVariables): Promise<subgraph.SellerFieldsFragment>;
    /**
     * Returns seller entities from subgraph.
     * @param queryVars - Optional query variables to skip, order or filter.
     * @returns Seller entities from subgraph.
     */
    getSellers(queryVars?: subgraph.GetSellersQueryQueryVariables): Promise<subgraph.SellerFieldsFragment[]>;
    /**
     * Creates seller account by calling the `AccountHandlerFacet` contract.
     * @param sellerToCreate - Addresses and contract URI to set in the seller account.
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    createSeller(sellerToCreate: accounts.CreateSellerArgs, overrides: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    createSeller(sellerToCreate: accounts.CreateSellerArgs, overrides?: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Creates seller account and offer by calling the `OrchestrationHandlerFacet` contract.
     * This transaction only succeeds if there is no existing seller account for the connected signer.
     * @param sellerToCreate - Addresses to set in the seller account.
     * @param offerToCreate - Offer arguments.
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    createSellerAndOffer(sellerToCreate: accounts.CreateSellerArgs, offerToCreate: offers.CreateOfferArgs, overrides: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    createSellerAndOffer(sellerToCreate: accounts.CreateSellerArgs, offerToCreate: offers.CreateOfferArgs, overrides?: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Updates seller account by calling the `AccountHandlerFacet` contract. Only callable
     * by admin.
     * @param sellerUpdates - Values to update.
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    updateSeller(sellerUpdates: accounts.UpdateSellerArgs, overrides: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    updateSeller(sellerUpdates: accounts.UpdateSellerArgs, overrides?: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Opt-in to a pending seller update by calling the `AccountHandlerFacet` contract. Only callable
     * by admin.
     * @param sellerUpdates - Values to update.
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    optInToSellerUpdate(sellerUpdates: accounts.OptInToSellerUpdateArgs, overrides: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    optInToSellerUpdate(sellerUpdates: accounts.OptInToSellerUpdateArgs, overrides?: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Updates seller account by calling the `AccountHandlerFacet` contract,
     * then optIn for all updates doable by the same account. Only callable
     * by admin.
     * @param sellerUpdates - Values to update.
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    updateSellerAndOptIn(sellerUpdates: accounts.UpdateSellerArgs, overrides?: Partial<{
        contractAddress: string;
    }>): Promise<TransactionResponse>;
    /**
     * Returns buyer entity from subgraph.
     * @param buyerId - ID of buyer entity to query for.
     * @param queryVars - Optional query variables to skip, order or filter.
     * @returns Buyer entity from subgraph.
     */
    getBuyerById(buyerId: BigNumberish, queryVars?: accounts.subgraph.SingleBuyerQueryVariables): Promise<subgraph.BuyerFieldsFragment>;
    /**
     * Returns buyer entities from subgraph.
     * @param queryVars - Optional query variables to skip, order or filter.
     * @returns Buyer entities from subgraph.
     */
    getBuyers(queryVars?: subgraph.GetBuyersQueryQueryVariables): Promise<subgraph.BuyerFieldsFragment[]>;
    createBuyer(buyerToCreate: accounts.CreateBuyerArgs, overrides: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    createBuyer(buyerToCreate: accounts.CreateBuyerArgs, overrides?: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Creates a dispute resolver account by calling the `AccountHandlerFacet` contract.
     * @param disputeResolverToCreate - Dispute resolver arguments.
     * @returns Transaction response.
     */
    createDisputeResolver(disputeResolverToCreate: accounts.CreateDisputeResolverArgs, overrides: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    createDisputeResolver(disputeResolverToCreate: accounts.CreateDisputeResolverArgs, overrides?: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Utility method to retrieve the created `exchangeId` from logs after calling `commitToOffer`.
     * @param logs - Logs to search in.
     * @returns Created exchange id.
     */
    getDisputeResolverIdFromLogs(logs: Log[]): string | null;
    /**
     * Utility method to retrieve the pending seller update fields from logs after calling `updateSeller`.
     * @param logs - Logs to search in.
     * @returns Created exchange id.
     */
    getPendingSellerUpdateFromLogs(logs: Log[]): {
        sellerId: bigint;
        assistant: string;
        clerk: string;
        admin: string;
        tokenType: number;
        tokenId: BigNumber;
    };
    /**
     * Updates a dispute resolver account by calling the `AccountHandlerFacet` contract.
     * Note, that the caller must be the specified `admin` address of the dispute resolver account.
     * @param disputeResolverId - Id of dispute resolver to update.
     * @param updates - Values to update for the given dispute resolver.
     * @returns Transaction response.
     */
    updateDisputeResolver(disputeResolverId: BigNumberish, updates: accounts.DisputeResolverUpdates, overrides: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    updateDisputeResolver(disputeResolverId: BigNumberish, updates: accounts.DisputeResolverUpdates, overrides?: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    optInToDisputeResolverUpdate(disputeResolverUpdates: accounts.OptInToDisputeResolverUpdateArgs, overrides: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    optInToDisputeResolverUpdate(disputeResolverUpdates: accounts.OptInToDisputeResolverUpdateArgs, overrides?: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Adds fees to a dispute resolver account by calling the `AccountHandlerFacet`
     * contract. Note, that the caller must be the specified `admin` address of the dispute
     * resolver account.
     * @param disputeResolverId - Id of dispute resolver.
     * @param fees - Dispute resolution fees. Should only contain token addresses that are
     * not already specified.
     * @returns Transaction response.
     */
    addFeesToDisputeResolver(disputeResolverId: BigNumberish, fees: accounts.DisputeResolutionFee[], overrides: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    addFeesToDisputeResolver(disputeResolverId: BigNumberish, fees: accounts.DisputeResolutionFee[], overrides?: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Adds sellers to the allow list of a dispute resolver account by calling the
     * `AccountHandlerFacet` contract. Note, that the caller must be the specified
     * `admin` address of the dispute resolver account.
     * @param disputeResolverId - Id of dispute resolver.
     * @param sellerAllowList - List of seller ids that are allowed to use the dispute resolver.
     *  Should only contain seller ids that are not part of the current allow list.
     * @returns Transaction response.
     */
    addSellersToDisputeResolverAllowList(disputeResolverId: BigNumberish, sellerAllowList: BigNumberish[], overrides: Partial<{
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    addSellersToDisputeResolverAllowList(disputeResolverId: BigNumberish, sellerAllowList: BigNumberish[], overrides?: Partial<{
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Removes fees from a dispute resolver account by calling the `AccountHandlerFacet`
     * contract. Note, that the caller must be the specified `admin` address of the dispute
     * resolver account.
     * @param disputeResolverId - Id of dispute resolver.
     * @param feeTokenAddresses - Addresses of fee tokens to remove.
     * @returns Transaction response.
     */
    removeFeesFromDisputeResolver(disputeResolverId: BigNumberish, feeTokenAddresses: string[], overrides: Partial<{
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    removeFeesFromDisputeResolver(disputeResolverId: BigNumberish, feeTokenAddresses: string[], overrides?: Partial<{
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Removes sellers from the allow list of a dispute resolver account by calling the
     * `AccountHandlerFacet` contract. Note, that the caller must be the specified
     * `admin` address of the dispute resolver account.
     * @param disputeResolverId - Id of dispute resolver.
     * @param sellerAllowList - List of seller ids that should be removed from the allow
     * list of a dispute resolver.
     * @returns Transaction response.
     */
    removeSellersFromDisputeResolverAllowList(disputeResolverId: BigNumberish, sellerAllowList: string[], overrides: Partial<{
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    removeSellersFromDisputeResolverAllowList(disputeResolverId: BigNumberish, sellerAllowList: string[], overrides?: Partial<{
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Returns dispute resolver entity from subgraph.
     * @param disputeResolverId - ID of dispute resolver entity to query for.
     * @param queryVars - Optional query variables to skip, order or filter.
     * @returns Dispute resolver entity from subgraph.
     */
    getDisputeResolverById(disputeResolverId: BigNumberish, queryVars?: accounts.subgraph.SingleDisputeResolverQueryVariables): Promise<subgraph.DisputeResolverFieldsFragment>;
    /**
     * Returns dispute resolver entities from subgraph.
     * @param queryVars - Optional query variables to skip, order or filter.
     * @returns Dispute resolver entities from subgraph.
     */
    getDisputeResolvers(queryVars?: subgraph.GetDisputeResolversQueryQueryVariables): Promise<subgraph.DisputeResolverFieldsFragment[]>;
    createNewCollection(collectionToCreate: accounts.CreateCollectionArgs, overrides: Partial<{
        contractAddress: string;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    createNewCollection(collectionToCreate: accounts.CreateCollectionArgs, overrides?: Partial<{
        contractAddress: string;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    getOfferCollections(queryVars?: subgraph.GetOfferCollectionsQueryQueryVariables): Promise<subgraph.OfferCollectionFieldsFragment[]>;
    addRoyaltyRecipients(sellerId: BigNumberish, royaltyRecipients: accounts.RoyaltyRecipientInfo[], overrides: Partial<{
        contractAddress: string;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    addRoyaltyRecipients(sellerId: BigNumberish, royaltyRecipients: accounts.RoyaltyRecipientInfo[], overrides?: Partial<{
        contractAddress: string;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    updateRoyaltyRecipients(sellerId: BigNumberish, royaltyRecipientIds: BigNumberish[], royaltyRecipients: accounts.RoyaltyRecipientInfo[], overrides: Partial<{
        contractAddress: string;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    updateRoyaltyRecipients(sellerId: BigNumberish, royaltyRecipientIds: BigNumberish[], royaltyRecipients: accounts.RoyaltyRecipientInfo[], overrides?: Partial<{
        contractAddress: string;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    removeRoyaltyRecipients(sellerId: BigNumberish, royaltyRecipientIds: BigNumberish[], overrides: Partial<{
        contractAddress: string;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    removeRoyaltyRecipients(sellerId: BigNumberish, royaltyRecipientIds: BigNumberish[], overrides?: Partial<{
        contractAddress: string;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    getRoyaltyRecipients(sellerId: BigNumberish, overrides?: Partial<{
        contractAddress: string;
    }>): Promise<accounts.RoyaltyRecipientInfo[]>;
}
//# sourceMappingURL=mixin.d.ts.map