import { ProductPageQueryQuery } from '../../templates/__generated__/ProductPageQuery.graphql'; import { ProductSummary_ProductFragment } from '../../components/ProductSummary/__generated__/ProductSummary_product.graphql'; import { OrderFormFragment_OrderFormFragment } from '../orderForm/controller/__generated__/OrderFormFragment_orderForm.graphql'; import { OrderFormItem } from '../orderForm/types'; export interface PageViewData { accountName: string; pageTitle: string; pageUrl: string; referrer: string; } export interface UserData extends PageViewData { firstName?: string; lastName?: string; document?: string; id?: string; email?: string; phone?: string; isAuthenticated: boolean; } export interface CartIdData extends PageViewData { cartId: string; } export declare type HomeViewData = PageViewData; export declare type ProductPageInfoData = PageViewData; export interface CategoryViewData extends PageViewData { id: string; name: string; } export interface DepartmentViewData extends PageViewData { id: string; name: string; } export interface InternalSiteSearchViewData extends PageViewData { term: string; results: number; } export interface AddToCartData { items: OrderFormItem[]; } export interface RemoveFromCartData { items: OrderFormFragment_OrderFormFragment['items']; } export interface CartChangedData { items: OrderFormFragment_OrderFormFragment['items']; } export declare type OrderPlacedData = Order; export declare type OrderPlacedTrackedData = Order; export interface ProductViewData { product: ProductPageQueryQuery['vtex']['product']; } export interface ProductClickData { product: ProductSummary_ProductFragment; } export interface ProductImpressionData { impressions: Impression[]; product?: ProductSummary_ProductFragment; position?: number; list: string; } export interface CartLoadedData { orderForm: OrderFormFragment_OrderFormFragment; } interface Order { accountName: string; corporateName: string; coupon: string; currency: string; openTextField: string; orderGroup: string; salesChannel: string; visitorAddressCity: string; visitorAddressComplement: string; visitorAddressCountry: string; visitorAddressNeighborhood: string; visitorAddressNumber: string; visitorAddressPostalCode: string; visitorAddressState: string; visitorAddressStreet: string; visitorContactInfo: string[]; visitorContactPhone: string; visitorType: string; transactionId: string; transactionDate: string; transactionAffiliation: string; transactionTotal: number; transactionShipping: number; transactionSubtotal: number; transactionDiscounts: number; transactionTax: number; transactionCurrency: string; transactionPaymentType: PaymentType[]; transactionShippingMethod: ShippingMethod[]; transactionLatestShippingEstimate: Date; transactionProducts: ProductOrder[]; transactionPayment: { id: string; }; } interface Impression { product: ProductSummary_ProductFragment; position: number; } interface PaymentType { group: string; paymentSystemName: string; installments: number; value: number; } interface ShippingMethod { itemId: string; selectedSla: string; } interface ProductOrder { id: string; name: string; sku: string; skuRefId: string; skuName: string; productRefId: string; ean: string; slug: string; brand: string; brandId: string; seller: string; sellerId: string; category: string; categoryId: string; categoryTree: string[]; categoryIdTree: string[]; priceTags: PriceTag[]; originalPrice: number; price: number; sellingPrice: number; tax: number; quantity: number; components: any[]; measurementUnit: string; unitMultiplier: number; } interface PriceTag { identifier: string; isPercentual: boolean; value: number; } export {};