import { BigNumberish, BigNumber } from "@ethersproject/bignumber";
import { Web3LibAdapter, TransactionResponse, TransactionRequest, MetadataStorage, SellerOfferArgs, FullOfferArgs } from "@bosonprotocol/common";
import { OfferFieldsFragment } from "../subgraph";
import { getSignatureParameters, StructuredData } from "../utils/signature";
type BaseExchangeHandlerArgs = {
    contractAddress: string;
    subgraphUrl: string;
    web3Lib: Web3LibAdapter;
};
export declare function checkOfferIsCommittable(offerId: BigNumberish, offer: OfferFieldsFragment): void;
export declare function commitToOffer(args: BaseExchangeHandlerArgs & {
    buyer: string;
    offerId: BigNumberish;
    returnTxInfo: true;
}): Promise<TransactionRequest>;
export declare function commitToOffer(args: BaseExchangeHandlerArgs & {
    buyer: string;
    offerId: BigNumberish;
    returnTxInfo?: false | undefined;
}): Promise<TransactionResponse>;
export declare function commitToBuyerOffer(args: BaseExchangeHandlerArgs & {
    offerId: BigNumberish;
    sellerParams: SellerOfferArgs;
    returnTxInfo: true;
}): Promise<TransactionRequest>;
export declare function commitToBuyerOffer(args: BaseExchangeHandlerArgs & {
    offerId: BigNumberish;
    sellerParams: SellerOfferArgs;
    returnTxInfo?: false | undefined;
}): Promise<TransactionResponse>;
export declare function commitToConditionalOffer(args: BaseExchangeHandlerArgs & {
    buyer: string;
    offerId: BigNumberish;
    tokenId: BigNumberish;
    returnTxInfo: true;
}): Promise<TransactionRequest>;
export declare function commitToConditionalOffer(args: BaseExchangeHandlerArgs & {
    buyer: string;
    offerId: BigNumberish;
    tokenId: BigNumberish;
    returnTxInfo?: false | undefined;
}): Promise<TransactionResponse>;
export declare function createOfferAndCommit(args: {
    createOfferAndCommitArgs: FullOfferArgs;
    returnTxInfo: true;
    subgraphUrl: string;
    contractAddress: string;
    web3Lib: Web3LibAdapter;
    txRequest?: TransactionRequest;
    metadataStorage?: MetadataStorage;
    theGraphStorage?: MetadataStorage;
}): Promise<TransactionRequest>;
export declare function createOfferAndCommit(args: {
    createOfferAndCommitArgs: FullOfferArgs;
    returnTxInfo?: false | undefined;
    subgraphUrl: string;
    contractAddress: string;
    web3Lib: Web3LibAdapter;
    txRequest?: TransactionRequest;
    metadataStorage?: MetadataStorage;
    theGraphStorage?: MetadataStorage;
}): Promise<TransactionResponse>;
export declare function isFullOfferVoided(args: {
    fullOfferArgsUnsigned: Omit<FullOfferArgs, "signature">;
    contractAddress: string;
    web3Lib: Web3LibAdapter;
    subgraphUrl: string;
}): Promise<boolean>;
export declare function signFullOffer(args: {
    fullOfferArgsUnsigned: Omit<FullOfferArgs, "signature">;
    contractAddress: string;
    web3Lib: Web3LibAdapter;
    chainId: number;
    returnTypedDataToSign: true;
}): Promise<StructuredData>;
export declare function signFullOffer(args: {
    fullOfferArgsUnsigned: Omit<FullOfferArgs, "signature">;
    contractAddress: string;
    web3Lib: Web3LibAdapter;
    chainId: number;
    returnTypedDataToSign?: false;
}): Promise<ReturnType<typeof getSignatureParameters>>;
export declare function completeExchange(args: BaseExchangeHandlerArgs & {
    exchangeId: BigNumberish;
    returnTxInfo: true;
}): Promise<TransactionRequest>;
export declare function completeExchange(args: BaseExchangeHandlerArgs & {
    exchangeId: BigNumberish;
    returnTxInfo?: false | undefined;
}): Promise<TransactionResponse>;
export declare function completeExchangeBatch(args: BaseExchangeHandlerArgs & {
    exchangeIds: BigNumberish[];
    returnTxInfo: true;
}): Promise<TransactionRequest>;
export declare function completeExchangeBatch(args: BaseExchangeHandlerArgs & {
    exchangeIds: BigNumberish[];
    returnTxInfo?: false | undefined;
}): Promise<TransactionResponse>;
export declare function revokeVoucher(args: BaseExchangeHandlerArgs & {
    exchangeId: BigNumberish;
    returnTxInfo: true;
}): Promise<TransactionRequest>;
export declare function revokeVoucher(args: BaseExchangeHandlerArgs & {
    exchangeId: BigNumberish;
    returnTxInfo?: false | undefined;
}): Promise<TransactionResponse>;
export declare function cancelVoucher(args: BaseExchangeHandlerArgs & {
    exchangeId: BigNumberish;
    returnTxInfo: true;
}): Promise<TransactionRequest>;
export declare function cancelVoucher(args: BaseExchangeHandlerArgs & {
    exchangeId: BigNumberish;
    returnTxInfo?: false | undefined;
}): Promise<TransactionResponse>;
export declare function expireVoucher(args: BaseExchangeHandlerArgs & {
    exchangeId: BigNumberish;
    returnTxInfo: true;
}): Promise<TransactionRequest>;
export declare function expireVoucher(args: BaseExchangeHandlerArgs & {
    exchangeId: BigNumberish;
    returnTxInfo?: false | undefined;
}): Promise<TransactionResponse>;
export declare function redeemVoucher(args: BaseExchangeHandlerArgs & {
    exchangeId: BigNumberish;
    returnTxInfo: true;
}): Promise<TransactionRequest>;
export declare function redeemVoucher(args: BaseExchangeHandlerArgs & {
    exchangeId: BigNumberish;
    returnTxInfo?: false | undefined;
}): Promise<TransactionResponse>;
export declare function getExchangeTokenId(exchangeId: BigNumberish, offerId: BigNumberish): BigNumber;
export declare function parseTokenId(tokenId: BigNumberish): {
    offerId: BigNumber;
    exchangeId: BigNumber;
};
export {};
//# sourceMappingURL=handler.d.ts.map