import { BigNumberish } from "@ethersproject/bignumber";
export declare enum eOrderType {
    FULL_OPEN = 0,
    PARTIAL_OPEN = 1,
    FULL_RESTRICTED = 2,
    PARTIAL_RESTRICTED = 3,
    CONTRACT = 4
}
export declare enum eItemType {
    NATIVE = 0,
    ERC20 = 1,
    ERC721 = 2,
    ERC1155 = 3,
    ERC721_WITH_CRITERIA = 4,
    ERC1155_WITH_CRITERIA = 5
}
type OfferItem = {
    itemType: eItemType;
    token: string;
    identifierOrCriteria: BigNumberish;
    startAmount: BigNumberish;
    endAmount: BigNumberish;
};
type ConsiderationItem = OfferItem & {
    recipient: string;
};
type OrderParameters = {
    offerer: string;
    zone: string;
    offer: OfferItem[];
    consideration: ConsiderationItem[];
    orderType: eOrderType;
    startTime: BigNumberish;
    endTime: BigNumberish;
    zoneHash: string;
    salt: BigNumberish;
    conduitKey: string;
    totalOriginalConsiderationItems: BigNumberish;
};
export type Order = {
    parameters: OrderParameters;
    signature: string;
};
export type AdvancedOrder = Order & {
    numerator: BigNumberish;
    denominator: BigNumberish;
    extraData: string;
};
export declare enum Side {
    OFFER = 0,// items that can be spent
    CONSIDERATION = 1
}
export type CriteriaResolver = {
    orderIndex: BigNumberish;
    side: number;
    index: BigNumberish;
    identifier: BigNumberish;
    criteriaProof: string[];
};
export type Fulfillment = {
    offerComponents: FulfillmentComponent[];
    considerationComponents: FulfillmentComponent[];
};
export type FulfillmentComponent = {
    orderIndex: BigNumberish;
    itemIndex: BigNumberish;
};
export declare function encodeValidate(orders: Order[]): string;
export declare function encodeMatchAdvancedOrders(advancedOrders: AdvancedOrder[], criteriaResolvers: CriteriaResolver[], fulfillments: Fulfillment[], recipient: string): string;
export {};
//# sourceMappingURL=interface.d.ts.map