import { Dish, Order, OrderDish } from '@webresto/ng-gql'; export type EcommerceActionTypes = /** просмотр списка товаров; */ 'impression' /** клик по товару в списке; */ | 'click' /** просмотр товара; */ | 'detail' /** добавление товара в корзину; */ | 'add' /** удаление товара из корзины; */ | 'remove' /** покупка; */ | 'purchase' /** просмотр внутренней рекламы; */ | 'promoView' /** клик по внутренней рекламе. */ | 'promoClick'; export declare class EcommerceProduct { /** Идентификатор товара. Например, SKU. Необходимо обязательно указать или id или name */ id?: string; /** * Название товара. Например, "Футболка" Необходимо обязательно указать или name или id */ name?: string; /** * Бренд, торговая марка, ассоциированная с товаром. Например, "Яндекс / Яndex" */ brand?: string; /** * Категория, к которой относится товар. Поддерживается иерархия категорий до 5 уровней вложенности. Разделителем уровней является символ /. Например, "Одежда/Мужская одежда/Футболки" */ category?: string; /** Промокод ассоциированный с товаром. Например, "PARTNER_SITE_15" */ coupon?: string; /**Размер скидки на товар (указывается как число). */ discount: number; /** Список, к которому относится товар. Чтобы оценивать эффективность списка на разных этапах взаимодействия пользователя * с товаром, рекомендуем указывать список товара во всех событиях, которые были после просмотра списка. */ list: string; /** Позиция товара в списке. Например, 2 */ position?: number; /** Цена единицы товара */ price?: number; /**Количество единиц товара */ quantity?: number; /**Разновидность товара. Например, "Красный цвет" */ variant?: string; constructor(dish: Partial>, listName: string); constructor(dish: Partial, listName: string, amount: number, position: number); } export interface EcommerceAction { products: EcommerceProduct[]; } export interface EcommercePurchaseAction extends EcommerceAction { actionField: { id?: string; coupon?: string; goal_id?: number; revenue?: number; }; } export type EcommerceItem = { currencyCode: 'RUB'; } & Pick<{ [K in EcommerceActionTypes]: K extends 'purchase' ? EcommercePurchaseAction : EcommerceAction; }, EcommerceActionTypes>; export declare function ecommerceItemFactory>(actionName: A, listName: string, dish: Partial, amount: number, position: number): EcommerceItem; export declare function ecommerceItemFactory(actionName: 'purchase', listName: string, order: Partial): EcommerceItem; export interface EcommerceEvent { ecommerce: EcommerceItem; }