import { type Chain, OrderSide } from "../types"; import type { ProtocolData } from "./types"; export declare const DEFAULT_SEAPORT_CONTRACT_ADDRESS = "0x0000000000000068F116a894984e2DB1123eB395"; /** * Build the POST /api/v2/offers body for a collection offer. * * The OpenSea OpenAPI spec uses mixed casing here: the outer envelope * (`protocol_address`, `protocol_data`) is snake_case, but the Seaport * `parameters` inside `protocol_data` and `numericTraits` inside `criteria` * keep their camelCase keys on the wire. Emit the body in exact wire shape * so callers can pass `snakeizeBody: false`. */ export declare const getPostCollectionOfferPayload: (collectionSlug: string, protocolData: ProtocolData, chain: Chain, traitType?: string, traitValue?: string, traits?: Array<{ type: string; value: string; }>, numericTraits?: Array<{ type: string; min?: number; max?: number; }>) => { criteria: { collection: { slug: string; }; traits?: Array<{ type: string; value: string; }>; trait?: { type: string; value: string; }; numericTraits?: Array<{ type: string; min?: number; max?: number; }>; }; protocol_data: import("@opensea/seaport-js/lib/types").OrderWithCounter; protocol_address: string; }; /** * Build the POST /api/v2/offers/build body. Same mixed-casing rules as * {@link getPostCollectionOfferPayload}: outer `protocol_address` and * `offer_protection_enabled` are snake_case, `numericTraits` stays camelCase. */ export declare const getBuildCollectionOfferPayload: (offererAddress: string, quantity: number, collectionSlug: string, offerProtectionEnabled: boolean, chain: Chain, traitType?: string, traitValue?: string, traits?: Array<{ type: string; value: string; }>, numericTraits?: Array<{ type: string; min?: number; max?: number; }>) => { offerer: string; quantity: number; criteria: { collection: { slug: string; }; traits?: Array<{ type: string; value: string; }>; trait?: { type: string; value: string; }; numericTraits?: Array<{ type: string; min?: number; max?: number; }>; }; protocol_address: string; offer_protection_enabled: boolean; }; export declare const getFulfillmentDataPath: (side: OrderSide) => string; export declare const getFulfillListingPayload: (fulfillerAddress: string, orderHash: string, protocolAddress: string, chain: Chain, assetContractAddress?: string, tokenId?: string, unitsToFill?: string, recipientAddress?: string, includeOptionalCreatorFees?: boolean) => { listing: { hash: string; chain: Chain; protocolAddress: string; }; fulfiller: { address: string; }; consideration?: { assetContractAddress: string; tokenId: string; }; unitsToFill: string; recipient?: string; includeOptionalCreatorFees: boolean; }; export declare const getFulfillOfferPayload: (fulfillerAddress: string, orderHash: string, protocolAddress: string, chain: Chain, assetContractAddress?: string, tokenId?: string, unitsToFill?: string, includeOptionalCreatorFees?: boolean) => { offer: { hash: string; chain: Chain; protocolAddress: string; }; fulfiller: { address: string; }; consideration?: { assetContractAddress: string; tokenId: string; }; unitsToFill: string; includeOptionalCreatorFees: boolean; };