import { ConditionStruct, FullOfferArgs, TransactionResponse, TransactionRequest, Web3LibAdapter } from "@bosonprotocol/common";
import { BigNumberish } from "@ethersproject/bignumber";
import { offers, accounts } from "..";
import { BaseCoreSDK } from "./../mixins/base-core-sdk";
import { PremintParametersStruct } from "@bosonprotocol/common/src";
export declare class OrchestrationMixin<T extends Web3LibAdapter> extends BaseCoreSDK<T> {
    /**
     * Creates an offer with a specific conditions
     * @param offerToCreate - Offer arguments.
     * @param condition -  contract condition applied to the offer
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    createOfferWithCondition(offerToCreate: offers.CreateOfferArgs, condition: ConditionStruct, overrides: Partial<{
        contractAddress: string;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    createOfferWithCondition(offerToCreate: offers.CreateOfferArgs, condition: ConditionStruct, overrides?: Partial<{
        contractAddress: string;
        returnTxInfo?: false;
    }>): Promise<TransactionResponse>;
    /**
     * Creates a seller account and offer with a specific conditions
     * 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 condition -  contract condition applied to the offer
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    createSellerAndOfferWithCondition(sellerToCreate: accounts.CreateSellerArgs, offerToCreate: offers.CreateOfferArgs, condition: ConditionStruct, overrides: Partial<{
        contractAddress: string;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    createSellerAndOfferWithCondition(sellerToCreate: accounts.CreateSellerArgs, offerToCreate: offers.CreateOfferArgs, condition: ConditionStruct, overrides?: Partial<{
        contractAddress: string;
        returnTxInfo?: false;
    }>): Promise<TransactionResponse>;
    /**
     * Creates a preminted offer and adds it to an existing group
     * @param offerToCreate - Offer arguments.
     * @param premintParameters - Premint parameters.
     * @param groupId -  Group ID the offer will be added to
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    createPremintedOfferAddToGroup(offerToCreate: offers.CreateOfferArgs, premintParameters: PremintParametersStruct, groupId: BigNumberish, overrides: Partial<{
        contractAddress: string;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    createPremintedOfferAddToGroup(offerToCreate: offers.CreateOfferArgs, premintParameters: PremintParametersStruct, groupId: BigNumberish, overrides?: Partial<{
        contractAddress: string;
        returnTxInfo?: false;
    }>): Promise<TransactionResponse>;
    /**
     * Creates a seller account and preminted offer
     * 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 premintParameters - Premint parameters.
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    createSellerAndPremintedOffer(sellerToCreate: accounts.CreateSellerArgs, offerToCreate: offers.CreateOfferArgs, premintParameters: PremintParametersStruct, overrides: Partial<{
        contractAddress: string;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    createSellerAndPremintedOffer(sellerToCreate: accounts.CreateSellerArgs, offerToCreate: offers.CreateOfferArgs, premintParameters: PremintParametersStruct, overrides?: Partial<{
        contractAddress: string;
        returnTxInfo?: false;
    }>): Promise<TransactionResponse>;
    /**
     * Creates a preminted offer with condition
     * @param offerToCreate - Offer arguments.
     * @param premintParameters - Premint parameters.
     * @param condition - Contract condition applied to the offer.
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    createPremintedOfferWithCondition(offerToCreate: offers.CreateOfferArgs, premintParameters: PremintParametersStruct, condition: ConditionStruct, overrides: Partial<{
        contractAddress: string;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    createPremintedOfferWithCondition(offerToCreate: offers.CreateOfferArgs, premintParameters: PremintParametersStruct, condition: ConditionStruct, overrides?: Partial<{
        contractAddress: string;
        returnTxInfo?: false;
    }>): Promise<TransactionResponse>;
    /**
     * Creates a seller account and preminted offer with a specific conditions
     * 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 premintParameters - Premint parameters.
     * @param condition - Contract condition applied to the offer.
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    createSellerAndPremintedOfferWithCondition(sellerToCreate: accounts.CreateSellerArgs, offerToCreate: offers.CreateOfferArgs, premintParameters: PremintParametersStruct, condition: ConditionStruct, overrides: Partial<{
        contractAddress: string;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    createSellerAndPremintedOfferWithCondition(sellerToCreate: accounts.CreateSellerArgs, offerToCreate: offers.CreateOfferArgs, premintParameters: PremintParametersStruct, condition: ConditionStruct, overrides?: Partial<{
        contractAddress: string;
        returnTxInfo?: false;
    }>): Promise<TransactionResponse>;
    /**
     * Commits to a seller-initiated offer and immediately redeems the voucher in
     * a single transaction by calling the `OrchestrationHandler`.
     * @param offerId - ID of offer to commit to.
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    commitToOfferAndRedeemVoucher(offerId: BigNumberish, overrides: Partial<{
        contractAddress: string;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    commitToOfferAndRedeemVoucher(offerId: BigNumberish, overrides?: Partial<{
        contractAddress: string;
        returnTxInfo?: false;
    }>): Promise<TransactionResponse>;
    /**
     * Commits to a conditional offer and immediately redeems the voucher in a
     * single transaction by calling the `OrchestrationHandler`.
     * @param offerId - ID of offer to commit to.
     * @param tokenId - ID of the token to use for the conditional commit.
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    commitToConditionalOfferAndRedeemVoucher(offerId: BigNumberish, tokenId: BigNumberish, overrides: Partial<{
        contractAddress: string;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    commitToConditionalOfferAndRedeemVoucher(offerId: BigNumberish, tokenId: BigNumberish, overrides?: Partial<{
        contractAddress: string;
        returnTxInfo?: false;
    }>): Promise<TransactionResponse>;
    /**
     * Creates an offer, commits to it and immediately redeems the voucher in a
     * single transaction by calling the `OrchestrationHandler`.
     * @param createOfferAndCommitArgs - Offer and commit arguments.
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    createOfferCommitAndRedeem(createOfferAndCommitArgs: FullOfferArgs, overrides: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    createOfferCommitAndRedeem(createOfferAndCommitArgs: FullOfferArgs, overrides?: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo?: false;
    }>): Promise<TransactionResponse>;
    /**
     * Raises a dispute and immediately escalates it
     * @param exchangeId - Exchange ID
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    raiseAndEscalateDispute(exchangeId: BigNumberish, overrides: Partial<{
        contractAddress: string;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    raiseAndEscalateDispute(exchangeId: BigNumberish, overrides?: Partial<{
        contractAddress: string;
        returnTxInfo?: false;
    }>): Promise<TransactionResponse>;
}
//# sourceMappingURL=mixin.d.ts.map