import { FundingRoute, SaleItem, SalePaymentTypes } from '@imtbl/checkout-sdk';
import { Passport } from '@imtbl/passport';
import { ReactNode } from 'react';
import { Environment } from '@imtbl/config';
import { ConnectLoaderState } from '../../../context/connect-loader-context/ConnectLoaderContext';
import { StrongCheckoutWidgetsConfig } from '../../../lib/withDefaultWidgetConfig';
import { OrderQuote, OrderQuoteCurrency, ExecuteOrderResponse, ExecutedTransaction, SaleErrorTypes, SignOrderError, SignPaymentTypes, SignResponse, ExecuteTransactionStep, SignedTransaction } from '../types';
type SaleContextProps = {
    config: StrongCheckoutWidgetsConfig;
    environment: Environment;
    environmentId: string;
    items: SaleItem[];
    collectionName: string;
    provider: ConnectLoaderState['provider'];
    checkout: ConnectLoaderState['checkout'];
    passport?: Passport;
    excludePaymentTypes: SalePaymentTypes[];
    excludeFiatCurrencies?: string[];
    preferredCurrency?: string;
    customOrderData?: Record<string, unknown>;
    waitFulfillmentSettlements: boolean;
    hideExcludedPaymentTypes: boolean;
};
type SaleContextValues = SaleContextProps & {
    sign: (paymentType: SignPaymentTypes, tokenAddress?: string, callback?: (response: SignResponse | undefined) => void) => Promise<SignResponse | undefined>;
    executeAll: (signResponse: SignResponse | undefined, onTxnSuccess: (txn: ExecutedTransaction) => void, onTxnError: (error: SignOrderError, txns: ExecutedTransaction[]) => void, onTxnStep?: (method: string, step: ExecuteTransactionStep) => void) => Promise<ExecutedTransaction[]>;
    executeNextTransaction: (onTxnSuccess: (txn: ExecutedTransaction) => void, onTxnError: (error: any, txns: ExecutedTransaction[]) => void, onTxnStep?: (method: string, step: ExecuteTransactionStep) => void) => Promise<boolean>;
    recipientAddress: string;
    recipientEmail: string;
    signResponse: SignResponse | undefined;
    signError: SignOrderError | undefined;
    filteredTransactions: SignedTransaction[];
    currentTransactionIndex: number;
    executeResponse: ExecuteOrderResponse | undefined;
    isPassportWallet: boolean;
    showCreditCardWarning: boolean;
    setShowCreditCardWarning: (show: boolean) => void;
    paymentMethod: SalePaymentTypes | undefined;
    setPaymentMethod: (paymentMethod: SalePaymentTypes | undefined) => void;
    goBackToPaymentMethods: (paymentMethod?: SalePaymentTypes | undefined, data?: Record<string, unknown>) => void;
    goToErrorView: (type: SaleErrorTypes, data?: Record<string, unknown>) => void;
    goToSuccessView: (data?: Record<string, unknown>) => void;
    fundingRoutes: FundingRoute[];
    disabledPaymentTypes: SalePaymentTypes[];
    invalidParameters: boolean;
    fromTokenAddress: string;
    orderQuote: OrderQuote;
    signTokenIds: string[];
    selectedCurrency: OrderQuoteCurrency | undefined;
};
export declare function SaleContextProvider(props: {
    children: ReactNode;
    value: SaleContextProps;
}): import("@emotion/react/jsx-runtime").JSX.Element;
export declare function useSaleContext(): SaleContextValues;
export {};
