import * as lodash from 'lodash';
import { B as BeamBaseAPIConfig } from './types-DfRc36jU.esm.js';
import { a as TCartApi } from './cart-contents-CLT7p7Gd.esm.js';

type BeamCartAPIConfig = BeamBaseAPIConfig & {
    storeId: number;
    domain?: string;
    statsigExperiment?: string;
};
type BeamCartValues = {
    cartId?: string;
    itemCount?: number;
    subtotal?: number;
    currencyCode?: string;
} & Partial<TCartApi>;
/**
 * Sends cart information to Beam
 * Memoized based on previous arguments - if the objects are deep-equal, no update is made.
 * @side-effects Sets beam_cart cookie, set cart data in localstorage
 * @example
 * const BeamConfig = { apiKey: 'abc-123' }
 * const { beamCartId } =  await updateCart(BeamConfig, { beamCartId, itemCount, subtotal, currencyCode })
 * */
declare const updateCart: lodash.DebouncedFuncLeading<(config: BeamCartAPIConfig, cartValues: BeamCartValues, isFirstCartUpdateOnPageLoad?: any) => Promise<void>>;

export { type BeamCartAPIConfig as B, type BeamCartValues as a, updateCart as u };
