import { BridgeWidgetConfiguration, BridgeWidgetParams, OnrampWidgetConfiguration, OnRampWidgetParams, SaleWidgetConfiguration, SaleWidgetParams, SwapWidgetConfiguration, SwapWidgetParams, AddTokensWidgetParams, AddTokensWidgetConfiguration, CommerceFlowType, ConnectWidgetParams, ConnectWidgetConfiguration, WalletWidgetParams, WalletWidgetConfiguration, PurchaseWidgetConfiguration, PurchaseWidgetParams, TransferWidgetParams, TransferWidgetConfiguration, } from '@imtbl/checkout-sdk'; import { ViewType } from './ViewType'; export type CheckoutWidgetView = | ConnectView | WalletView | AddTokensView | SaleView | SwapView | OnRampView | BridgeView | PurchaseView | TransferView; interface ConnectView extends ViewType { type: CommerceFlowType.CONNECT; data: { params: ConnectWidgetParams; config: ConnectWidgetConfiguration; }; } interface WalletView extends ViewType { type: CommerceFlowType.WALLET; data: { params: WalletWidgetParams; config: WalletWidgetConfiguration; }; } interface AddTokensView extends ViewType { type: CommerceFlowType.ADD_TOKENS; data: { params: AddTokensWidgetParams; config: AddTokensWidgetConfiguration; }; } interface PurchaseView extends ViewType { type: CommerceFlowType.PURCHASE; data: { params: PurchaseWidgetParams & { environmentId: string; }; config: PurchaseWidgetConfiguration; }; } interface SaleView extends ViewType { type: CommerceFlowType.SALE; data: { params: Required; config: SaleWidgetConfiguration; }; } interface SwapView extends ViewType { type: CommerceFlowType.SWAP; data: { params: SwapWidgetParams; config: SwapWidgetConfiguration; }; } interface OnRampView extends ViewType { type: CommerceFlowType.ONRAMP; data: { params: OnRampWidgetParams; config: OnrampWidgetConfiguration; }; } interface BridgeView extends ViewType { type: CommerceFlowType.BRIDGE; data: { params: BridgeWidgetParams; config: BridgeWidgetConfiguration; }; } interface TransferView extends ViewType { type: CommerceFlowType.TRANSFER; data: { params: TransferWidgetParams; config: TransferWidgetConfiguration; }; }