import { EventRunner, PageItem } from "../../event/core/event-runner"; /** * Specific runner used by Hipervarejo. * * @class HipervarejoRunner * @implements {Runner} */ export declare class HipervarejoRunner extends EventRunner { /** * Process DataLayer item. * * @protected * @param {*} item Current item. * @memberof HipervarejoRunner */ protected processItem(item: PageItem): void; /** * Get current page info based on DataLayer. * * @private * @param {PageItem} item Current item. * @return {PageInfo} Current page info. * @memberof HipervarejoRunner */ private getPageInfo; /** * Send order event, based on a order item. * * @private * @param {*} orderItem Order item from the DataLayer. * @memberof HipervarejoRunner */ private sendOrderEvent; /** * Send cart event, based on a cart item. * * @private * @param {*} cartItem Cart item from the DataLayer. * @memberof HipervarejoRunner */ private sendCartEvent; /** * Get layer products from specific event key. * * Hipervarejo has 2 specific keys when working with cart items on * the dataLayer. * * When products are added, they send the `ADDTOCART` event and * when they are removed, `REMOVEFROMCART` is sent. * * Whenever this events are sent, they come with an `ecommerce` * object, inside it, there is a key with the products array, * the key name follows the following rule: * * - When event is `ADDTOCART`, the key is `add`. * - When event is `REMOVEFROMCART`, the key is `remove`. * * @private * @param {string} event Current event name. * @return {string} Event related key. * @memberof HipervarejoRunner */ private getCartProductsKeyFromEvent; /** * Create a generic cart event. * * @private * @param {string} event Current event name. * @return {CartEvent} Relevant cart event. * @memberof HipervarejoRunner */ private createCartEvent; }