export type NFTResponseStatus = 'cancelled' | 'pending' | 'processed' | 'declined' | 'expired'; export type NFTResponse = { status: NFTResponseStatus; }; export interface NFTPurchaseRequest { nft: { name: string; imageUrl: string; blockchainNftId: string; contractAddress: string; network: string; platform: string; type: string; }; identityPrefill: { firstName: string; lastName: string; dateOfBirth: string; emailAddress: string; phone: string; address: { street1: string; street2: string; city: string; regionCode: string; postalCode: string; countryCode: string; }; }; } export type NFTPurchaseResponse = NFTResponse & { errorMessage?: string; }; export interface NFTCheckoutRequest { contractId: string; tokenId: string; name: string; imageUrl: string; quantity?: number; walletAddress?: string; isCryptoCheckoutEnabled?: boolean; walletProvider?: 'magic' | 'web3modal'; } export type NFTCheckoutResponse = NFTResponse; export type NFTCheckoutEvents = { disconnect: () => void; 'nft-checkout-initiated': (rawTransaction: string) => void; }; export interface NFTTransferRequest { tokenId: string; contractAddress: string; quantity?: number; recipient?: string; } export type NFTTransferResponse = NFTResponse; export declare enum NftCheckoutIntermediaryEvents { Success = "nft-checkout-success", Failure = "nft-checkout-failure", Initiated = "nft-checkout-initiated", Disconnect = "disconnect" } export type NftCheckoutEventHandler = { [NftCheckoutIntermediaryEvents.Initiated]: (rawTransaction: string) => void; [NftCheckoutIntermediaryEvents.Success]: (signedTransaction: string) => void; [NftCheckoutIntermediaryEvents.Failure]: () => void; };