UNPKG

@chordcommerce/analytics

Version:

Chord Commerce event tracking

92 lines (91 loc) 4.98 kB
import type { AnyAnalytics, EventProperties, Options, ValidateResult, ChordAnalyticsOptions, AnyOptions, CartViewedInput, IdentifyTraits, CheckoutStartedInput, CheckoutStepCompletedInput, CheckoutStepViewedInput, EmailCapturedInput, ProductListViewedInput, ProductListFilteredInput, ProductAddedInput, ProductClickedInput, VariantClickedInput, ProductRemovedInput, ProductViewedInput, ProductsSearchedInput, CouponAppliedInput, CouponDeniedInput, CouponEnteredInput, CouponRemovedInput, SignedInInput, SignedOutInput, SignedUpInput, LoginStartedInput, ObjectTypes, SubscriptionCancelledInput, NavigationClickedInput, PaymentInfoEnteredInput } from '../types/index.js'; export interface ChordAnalyticsSnippet { _loadOptions: ChordAnalyticsOptions<ObjectTypes>; invoked: boolean; methods: string[]; queue: any[]; factory: (method: string) => () => ChordAnalytics; load: () => void; SNIPPET_VERSION: string; } export declare class ChordAnalytics<T extends ObjectTypes = ObjectTypes> { /** * Allows snippet.js to detect whether this library has been initialized yet. */ initialize: true; /** * Allows snippet.js to detect whether the snippet has started running yet. */ invoked: true; /** * Options for ChordAnalytics. */ options: ChordAnalyticsOptions<T>; constructor(options: ChordAnalyticsOptions<T>); cdp: () => AnyAnalytics; logger: (message?: any, ...optionalParams: any[]) => void; /** * Validate the body of a `track` event against the Chord tracking plan. */ validate: (event: string, props: EventProperties) => ValidateResult[]; /** * Generate the event `meta` property. */ meta: () => { ownership: { oms_id: string; store_id: string; tenant_id: string; }; version: { major: number; minor: number; patch: number; }; i18n: import("../types/client.js").i18nMetadata; platform: import("../types/client.js").platformMetadata; store: import("../types/client.js").storeMetadata; }; /** * Send a `track` event to the CDP with any event name and properties. */ track: (event: string, props?: EventProperties, options?: Options) => Promise<void>; /** * Send an `identify` event to the CDP with user id and traits. */ identify: { (userId?: string, traits?: IdentifyTraits, options?: AnyOptions): void; (traits?: IdentifyTraits, options?: AnyOptions): void; }; /** * Send a `page` event to the CDP. */ page: { (): void; }; reset: () => void; trackCartViewed: (props: CartViewedInput<T>, options?: AnyOptions) => Promise<void>; trackCheckoutStarted: (props: CheckoutStartedInput<T>, options?: AnyOptions) => Promise<void>; trackCheckoutStepCompleted: (props: CheckoutStepCompletedInput, options?: AnyOptions) => Promise<void>; trackCheckoutStepViewed: (props: CheckoutStepViewedInput, options?: AnyOptions) => Promise<void>; trackCouponApplied: (props: CouponAppliedInput, options?: AnyOptions) => Promise<void>; trackCouponDenied: (props: CouponDeniedInput, options?: AnyOptions) => Promise<void>; trackCouponEntered: (props: CouponEnteredInput, options?: AnyOptions) => Promise<void>; trackCouponRemoved: (props: CouponRemovedInput, options?: AnyOptions) => Promise<void>; trackEmailCaptured: (props: EmailCapturedInput, options?: AnyOptions) => Promise<void>; trackProductAdded: (props: ProductAddedInput<T>, options?: AnyOptions) => Promise<void>; trackProductClicked: (props: ProductClickedInput<T>, options?: AnyOptions) => Promise<void>; trackVariantClicked: (props: VariantClickedInput<T>, options?: AnyOptions) => Promise<void>; trackProductListFiltered: (props: ProductListFilteredInput, options?: AnyOptions) => Promise<void>; trackProductListViewed: (props: ProductListViewedInput<T>, options?: AnyOptions) => Promise<void>; trackProductRemoved: (props: ProductRemovedInput<T>, options?: AnyOptions) => Promise<void>; trackProductViewed: (props: ProductViewedInput<T>, options?: AnyOptions) => Promise<void>; trackProductsSearched: (props: ProductsSearchedInput, options?: AnyOptions) => Promise<void>; trackSignedIn: (props: SignedInInput, options?: AnyOptions) => Promise<void>; trackSignedOut: (props?: SignedOutInput, options?: AnyOptions) => Promise<void>; trackSignedUp: (props?: SignedUpInput, options?: AnyOptions) => Promise<void>; trackLoginStarted: (props: LoginStartedInput, options?: AnyOptions) => Promise<void>; trackSubscriptionCancelled: (props: SubscriptionCancelledInput, options?: AnyOptions) => Promise<void>; trackNavigationClicked: (props: NavigationClickedInput, options?: AnyOptions) => Promise<void>; trackPaymentInfoEntered: (props: PaymentInfoEnteredInput, options?: AnyOptions) => Promise<void>; }