import { StandardAnalyticsActions } from '@imtbl/react-analytics';
import { SalePaymentTypes } from '@imtbl/checkout-sdk';
import { UserJourney, AnalyticsControlTypes } from '../../../context/analytics-provider/SegmentAnalyticsProvider';
import { ExecutedTransaction, FundingBalance } from '../types';
export declare const useSaleEvent: () => {
    track: (props: {
        screen: string;
        userJourney: UserJourney;
        extras?: Record<string, unknown> | undefined;
    } & ({
        action: StandardAnalyticsActions;
        control?: undefined;
        controlType?: undefined;
    } | {
        control: string;
        controlType: AnalyticsControlTypes;
        action?: StandardAnalyticsActions | undefined;
    })) => Promise<import("@segment/analytics-next").Context>;
    page: (props: {
        screen: string;
        userJourney: UserJourney;
        action?: StandardAnalyticsActions | undefined;
        extras?: Record<string, unknown> | undefined;
    }) => Promise<import("@segment/analytics-next").Context>;
    sendPageView: (screen: string, data?: Record<string, unknown>) => void;
    sendCloseEvent: (screen?: string, controlType?: AnalyticsControlTypes, action?: StandardAnalyticsActions) => void;
    sendSuccessEvent: (screen?: string, transactions?: ExecutedTransaction[], tokenIds?: string[], details?: Record<string, any>) => void;
    sendFailedEvent: (reason: string, error: Record<string, unknown>, transactions?: ExecutedTransaction[], screen?: string, details?: Record<string, any>) => void;
    sendTransactionSuccessEvent: (transaction: ExecutedTransaction) => void;
    sendOrderCreated: (screen: string, details: Record<string, unknown>) => void;
    sendSelectedPaymentMethod: (type: SalePaymentTypes, screen: string) => void;
    sendSelectedPaymentToken: (screen: string, fundingBalance: FundingBalance, conversions: Map<string, number>) => void;
    sendProceedToPay: (screen: string, fundingBalance: FundingBalance, conversions: Map<string, number>, controlType?: AnalyticsControlTypes, action?: StandardAnalyticsActions) => void;
    sendViewFeesEvent: (screen: string, controlType?: AnalyticsControlTypes, action?: StandardAnalyticsActions) => void;
    sendInsufficientFunds: (screen: string, txRequirements: any, controlType?: AnalyticsControlTypes, action?: StandardAnalyticsActions) => void;
};
