import { abis } from "@bosonprotocol/common";
import { Interface } from "@ethersproject/abi";
const seaportIface = new Interface(abis.SeaportABI);
export var eOrderType;
(function (eOrderType) {
    eOrderType[eOrderType["FULL_OPEN"] = 0] = "FULL_OPEN";
    eOrderType[eOrderType["PARTIAL_OPEN"] = 1] = "PARTIAL_OPEN";
    eOrderType[eOrderType["FULL_RESTRICTED"] = 2] = "FULL_RESTRICTED";
    eOrderType[eOrderType["PARTIAL_RESTRICTED"] = 3] = "PARTIAL_RESTRICTED";
    eOrderType[eOrderType["CONTRACT"] = 4] = "CONTRACT";
})(eOrderType || (eOrderType = {}));
export var eItemType;
(function (eItemType) {
    eItemType[eItemType["NATIVE"] = 0] = "NATIVE";
    eItemType[eItemType["ERC20"] = 1] = "ERC20";
    eItemType[eItemType["ERC721"] = 2] = "ERC721";
    eItemType[eItemType["ERC1155"] = 3] = "ERC1155";
    eItemType[eItemType["ERC721_WITH_CRITERIA"] = 4] = "ERC721_WITH_CRITERIA";
    eItemType[eItemType["ERC1155_WITH_CRITERIA"] = 5] = "ERC1155_WITH_CRITERIA";
})(eItemType || (eItemType = {}));
export var Side;
(function (Side) {
    Side[Side["OFFER"] = 0] = "OFFER";
    Side[Side["CONSIDERATION"] = 1] = "CONSIDERATION"; // items that must be received
})(Side || (Side = {}));
export function encodeValidate(orders) {
    return seaportIface.encodeFunctionData("validate", [orders]);
}
export function encodeMatchAdvancedOrders(advancedOrders, criteriaResolvers, fulfillments, recipient) {
    return seaportIface.encodeFunctionData("matchAdvancedOrders", [
        advancedOrders,
        criteriaResolvers,
        fulfillments,
        recipient
    ]);
}
//# sourceMappingURL=interface.js.map