/** * Shopify cart attribution hook. * * Intercepts the storefront's Ajax cart-add API (`/cart/add.js`, * `/cart/add`) and stamps every request with * `attributes[ps_session]: `. Shopify exposes cart * attributes as order note attributes, so when the * `orders/create` webhook fires we can match the purchase back to the * customer's try-on session on our backend. * * Also posts a lightweight `ADD_TO_CART_FROM_TRYON` event to our App * Proxy `/events/cart-add` endpoint so the admin funnel shows the step * regardless of whether the customer finishes checkout. * * No merchant integration required — dropping the storefront bundle * auto-installs this hook. */ export declare function setLastCompletedProduct(productId: string | null, productTitle: string | null): void; /** * Called by the React widget whenever the user actively picks a size in * the size-result view. The cart-hook then fires a SIZE_RECOMMENDATION_ACCEPTED * event when this product gets added to cart — a clearer "user committed" * signal than "user clicked a pill once". * * Side-effect: proactively stamp the current cart with `attributes[ps_session]` * via `/cart/update.js`. This is the primary attribution path now — works * regardless of how the buyer eventually checks out (Ajax cart, Buy It Now, * Shop Pay), because the attribute is already on the cart object before * the buyer adds anything. The legacy fetch/form-submit interception below * stays as a defense-in-depth fallback for older themes. */ export declare function setLastSizeSelection(input: { productId: string | null; productTitle: string | null; size: string | null; recommendedSize: string | null; }): void; /** * One-time install. Safe to call multiple times. */ export declare function installCartHook(): void;