import { SaleItem, FundingStep, FundingItem, SmartCheckoutResult, WrappedBrowserProvider } from '@imtbl/checkout-sdk'; export type SignedOrderProduct = { productId: string; qty: number; image: string; name: string; description: string; amount: number[]; tokenId: string[]; currency: string; contractType: string; collectionAddress: string; }; export type SignedOrder = { currency: { name: string; erc20Address: string; }; totalAmount: number; products: SignedOrderProduct[]; }; export type SignedTransaction = { tokenAddress: string; gasEstimate: number; methodCall: string; params: { reference: string; amount: number; spender: string; }; rawData: string; }; export type SignResponse = { order: SignedOrder; transactions: SignedTransaction[]; transactionId: string; }; export type SignOrderInput = { provider: WrappedBrowserProvider | undefined; items: SaleItem[]; fromTokenAddress: string; recipientAddress: string; environment: string; environmentId: string; waitFulfillmentSettlements: boolean; customOrderData?: Record; }; export type SignOrderError = { type: SaleErrorTypes; data?: Record | { vendorError: { code: string; message: string; }; }; }; export type ExecutedTransaction = { method: string; hash: string | undefined; }; export type ExecuteOrderResponse = { done: boolean; transactions: ExecutedTransaction[]; }; export declare enum SaleErrorTypes { DEFAULT = "DEFAULT_ERROR", INVALID_PARAMETERS = "INVALID_PARAMETERS", TRANSACTION_FAILED = "TRANSACTION_FAILED", SERVICE_BREAKDOWN = "SERVICE_BREAKDOWN", PRODUCT_NOT_FOUND = "PRODUCT_NOT_FOUND", INSUFFICIENT_STOCK = "INSUFFICIENT_STOCK", TRANSAK_FAILED = "TRANSAK_FAILED", WALLET_FAILED = "WALLET_FAILED", WALLET_REJECTED = "WALLET_REJECTED", WALLET_REJECTED_NO_FUNDS = "WALLET_REJECTED_NO_FUNDS", WALLET_POPUP_BLOCKED = "WALLET_POPUP_BLOCKED", FUNDING_ROUTE_EXECUTE_ERROR = "FUNDING_ROUTE_EXECUTE_ERROR", SALE_AUTHORIZATION_REJECTED = "SALE_AUTHORIZATION_REJECTED" } export type OrderQuoteCurrency = { base: boolean; decimals: number; address: string; exchangeId: string; name: string; }; export type OrderQuotePricing = { amount: number; currency: string; type: string; }; export type OrderQuoteProduct = { productId: string; quantity: number; pricing: Record; }; export type OrderQuote = { config: { contractId: string; }; currencies: Array; products: Record; totalAmount: Record; }; export declare enum SignPaymentTypes { CRYPTO = "crypto", FIAT = "fiat" } export declare enum FundingBalanceType { SUFFICIENT = "SUFFICIENT" } export type SufficientFundingStep = { type: FundingBalanceType.SUFFICIENT; fundingItem: FundingItem; }; export type FundingBalance = FundingStep | SufficientFundingStep; export type FundingBalanceResult = { currency: OrderQuoteCurrency; smartCheckoutResult: SmartCheckoutResult; }; export declare enum ExecuteTransactionStep { BEFORE = "before", PENDING = "pending", AFTER = "after" }