Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/packages / core / analytics / container.d.ts
Size: Mime:
/// <reference types="gapi" />
/// <reference types="gapi.client" />
/// <reference types="gapi.client.tagmanager" />
import { DeleteFromBagInput as DeleteBagType, ProductLite as ProductLiteType, CartProductLiteType as CartProductType, ProductOptionItemLiteType } from '@skava/graphql-bindings';
import { TagManagerCustomEventType, VirtualPageViewArgsType, AnalyticsEvent, TagManagerEventType, AddToCartEventProductArgsType } from './typings';
declare class AnalyticsContainer {
    queue: AnalyticsEvent[];
    timeoutId: unknown;
    googleAnalytics: Function;
    readonly tracker: typeof gapi.client;
    readonly pageName: string;
    trackPageEvent(): void;
    initializeAnalytics(): void;
    getCommonCustomDimensions(): {
        SK_UserType: string;
        SK_Region: any;
        SK_Language: any;
    };
    trackCustomEvent(eventDetails: TagManagerCustomEventType): void;
    pushToDataLayer(argumentsToTrack: TagManagerEventType): void;
    trackPDPTagManager(item: ProductLiteType): void;
    trackPLPTagManager(productList: ProductLiteType[]): void;
    getProductVariantDetails(productOptions: ProductOptionItemLiteType[]): string;
    trackVirtualPageView(pageViewDetails: VirtualPageViewArgsType): void;
    cartProducts(checkoutProductDetails: CartProductType[]): {
        name: string;
        id: number;
        price: any;
        brand: string;
        category: string;
        variant: string;
        quantity: number;
        list: never[];
        position: number;
    }[];
    trackPurchaseEcommerce(checkoutProductDetails: CartProductType[], orderId: string, orderDetails: any): void;
    trackCheckoutEcommerce(checkoutProductDetails: {
        index: number;
        cartProducts: CartProductType[];
        pageViewDetails: {
            pageUrl: string;
            pageTitle?: string;
        };
    }): void;
    /**
     * @todo @unused @typings
     */
    trackAddToListGA(productDetails: any): void;
    /**
     * @todo wrong type
     */
    trackRemoveFromCartGA(productDetails: DeleteBagType): void;
    pushAddToCartEventLayer(productDetail: AddToCartEventProductArgsType): void;
    trackAddToCartEventFromPdp(productDetail: ProductLiteType): void;
    trackAddToCartEvent(productDetail: ProductLiteType): void;
}
declare const analyticsContainer: AnalyticsContainer;
export { AnalyticsContainer };
export { analyticsContainer };