import { SaleErrorTypes } from '../../widgets/sale/types';
import { ViewType } from './ViewType';
export declare enum SaleWidgetViews {
    PAYMENT_METHODS = "PAYMENT_METHODS",
    PAY_WITH_COINS = "PAY_WITH_COINS",
    PAY_WITH_CARD = "PAY_WITH_CARD",
    ORDER_SUMMARY = "ORDER_SUMMARY",
    SALE_SUCCESS = "SALE_SUCCESS",
    SALE_FAIL = "SALE_FAIL"
}
export type SaleWidgetView = SaleMethodsView | SaleWithCoinsView | SaleWithCardView | OrderSummaryView | SaleSuccessView | SaleFailView;
interface SaleMethodsView extends ViewType {
    type: SaleWidgetViews.PAYMENT_METHODS;
    data?: {
        showInsufficientCoinsBanner?: boolean;
    };
}
interface SaleWithCoinsView extends ViewType {
    type: SaleWidgetViews.PAY_WITH_COINS;
}
interface SaleWithCardView extends ViewType {
    type: SaleWidgetViews.PAY_WITH_CARD;
}
interface OrderSummaryView extends ViewType {
    type: SaleWidgetViews.ORDER_SUMMARY;
    subView: OrderSummarySubViews;
}
interface SaleSuccessView extends ViewType {
    type: SaleWidgetViews.SALE_SUCCESS;
}
interface SaleFailView extends ViewType {
    type: SaleWidgetViews.SALE_FAIL;
    data?: {
        errorType: SaleErrorTypes;
        transactionHash?: string;
        vendorError?: {
            code: string;
            message?: string;
        };
        [key: string]: unknown;
    };
}
export declare enum OrderSummarySubViews {
    INIT = "INIT",
    REVIEW_ORDER = "REVIEW_ORDER",
    EXECUTE_FUNDING_ROUTE = "EXECUTE_FUNDING_ROUTE"
}
export {};
