import { TransactionResponse, TransactionRequest, Web3LibAdapter } from "@bosonprotocol/common";
import { Range } from "@bosonprotocol/common/src/types";
import { BigNumberish } from "@ethersproject/bignumber";
import { Order as SeaportOrder } from "../seaport/interface";
import { BaseCoreSDK } from "./../mixins/base-core-sdk";
export declare class VoucherMixin<T extends Web3LibAdapter> extends BaseCoreSDK<T> {
    /**
     * Burns preminted vouchers from an offer by calling the voucher contract.
     * This transaction only succeeds if there is an existing seller account for connected signer.
     * @param offerId - Offer ID
     * @param amount - Amount to burn
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    burnPremintedVouchers(offerId: BigNumberish, amount: BigNumberish, overrides: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    burnPremintedVouchers(offerId: BigNumberish, amount: BigNumberish, overrides?: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Pre-mints all or part of an offer's reserved vouchers by calling the voucher contract.
     * This transaction only succeeds if there is an existing seller account for connected signer.
     * @param offerId - Offer ID
     * @param amount - Amount to pre-mint
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    preMint(offerId: BigNumberish, amount: BigNumberish, overrides: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    preMint(offerId: BigNumberish, amount: BigNumberish, overrides?: Partial<{
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Transfers voucher from one address to another by calling the voucher contract.
     * This transaction only succeeds if there is an existing seller account for connected signer.
     * @param offerId - Offer ID
     * @param to - Recipient address
     * @param tokenId - Token ID to transfer
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    transferFrom(offerId: BigNumberish, to: BigNumberish, tokenId: BigNumberish, overrides: Partial<{
        owner: BigNumberish;
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    transferFrom(offerId: BigNumberish, to: BigNumberish, tokenId: BigNumberish, overrides?: Partial<{
        owner: BigNumberish;
        contractAddress: string;
        txRequest: TransactionRequest;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Sets contract URI by calling the voucher contract.
     * This transaction only succeeds if there is an existing seller account for connected signer.
     * @param contractURI - Contract URI
     * @param collectionIndex - Collection index
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    setContractURI(contractURI: string, collectionIndex: BigNumberish, overrides: Partial<{
        txRequest: TransactionRequest;
        returnTxInfo: true;
    }>): Promise<TransactionRequest>;
    setContractURI(contractURI: string, collectionIndex: BigNumberish, overrides?: Partial<{
        txRequest: TransactionRequest;
        returnTxInfo?: false | undefined;
    }>): Promise<TransactionResponse>;
    /**
     * Gets the number of vouchers available to be pre-minted for an offer.
     * @param offerId - Offer ID
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    getAvailablePreMints(offerId: BigNumberish, overrides?: Partial<{
        contractAddress: string;
    }>): Promise<string>;
    /**
     * Gets the range for an offer.
     * @param offerId - Offer ID
     * @param overrides - Optional overrides.
     * @returns Transaction response.
     */
    getRangeByOfferId(offerId: BigNumberish, overrides?: Partial<{
        contractAddress: string;
    }>): Promise<Range>;
    isApprovedForAll(operator: string, overrides?: Partial<{
        owner: string;
        contractAddress: string;
    }>): Promise<boolean>;
    setApprovalForAllToContract(operator: string, approved: boolean, overrides?: Partial<{
        contractAddress: string;
    }>): Promise<TransactionResponse>;
    approveProtocolForAll(overrides?: Partial<{
        operator: string;
        contractAddress: string;
    }>): Promise<TransactionResponse>;
    validateSeaportOrders(openseaConduit: string, seaportContract: string, orders: SeaportOrder[], overrides?: Partial<{
        contractAddress: string;
        approveIfNeeded: boolean;
    }>): Promise<TransactionResponse>;
}
//# sourceMappingURL=mixin.d.ts.map