import { TipserContextData, useUpdatableTipserContext } from '../../tipser-context';
import { CartItemModel, ShoppingCart } from '../../api/cart-types';
import { TipserProductModel } from '../../components/product/model';
import { From } from '../analytics/from';
import { ProductApi } from '../../api/product-api';
export declare function getAddToCartAndGoToCheckout(updatableTipserContext: ReturnType<typeof useUpdatableTipserContext>): (productId: string) => Promise<void>;
export declare function getAddToCartFunction(context: TipserContextData): (productId: string) => Promise<void>;
export declare function getRemoveFromCartFunction(context: TipserContextData): (productId: string) => Promise<boolean>;
export declare function getGetCartItemsFunction(context: TipserContextData, cart: ShoppingCart): () => Promise<CartItemModel[]>;
export declare function getGoToDirectToCheckoutPrivateFunction(updateContext: any): (productId: string, variantId?: string, showPdp?: boolean, affiliateUrl?: string, product?: TipserProductModel, from?: From) => void;
export declare function getGoToProductPrivateFunction(updatableTipserContext: ReturnType<typeof useUpdatableTipserContext>): (product: TipserProductModel, from?: From) => void;
export declare function getGoToProductFunction(updatableTipserContext: ReturnType<typeof useUpdatableTipserContext>): (productId: string, from?: From) => Promise<void>;
export declare function getGoToDirectToCheckoutFunction(updateContext: any, productApi: ProductApi): (productId: string, variantId?: string, showPdp?: boolean, affiliateUrl?: string, from?: From) => Promise<void>;
export declare function getUpdatePosDataFunction(updatableTipserContext: ReturnType<typeof useUpdatableTipserContext>): (productIdToPosData: string | {
    [productId: string]: string;
}) => Promise<void>;
export declare function getGoToCheckoutFunction(updatableTipserContext: ReturnType<typeof useUpdatableTipserContext>): () => Promise<void>;
export declare function getGoToCartFunction(updatableTipserContext: ReturnType<typeof useUpdatableTipserContext>): () => void;
export declare function getTrackProductImpressionFunction(context: TipserContextData): (productId: string) => void;
export declare function useInternalFunctions(): {
    addToCartAndGoToCheckout: (productId: string) => Promise<void>;
    goToProduct: (productId: string, from?: From) => Promise<void>;
    goToDirectToCheckout: (productId: string, variantId?: string, showPdp?: boolean, affiliateUrl?: string, from?: From) => Promise<void>;
    goToCheckout: () => Promise<void>;
    goToCart: () => void;
    addToCart: (productId: string) => Promise<void>;
    removeFromCart: (productId: string) => Promise<boolean>;
    getCartItems: () => Promise<CartItemModel[]>;
    trackProductImpression: (productId: string) => void;
    updatePosData: (productIdToPosData: string | {
        [productId: string]: string;
    }) => Promise<void>;
};
export declare function usePrivateInternalFunctions(): {
    goToProduct: (product: TipserProductModel, from?: From) => void;
};
//# sourceMappingURL=use-internal-functions.d.ts.map