import { Callback, SDKEventAttrs, SDKEventOptions, TransactionAttributes } from '@mparticle/web-sdk'; import { BaseEvent, SDKEvent, SDKEventCustomFlags, SDKImpression, SDKProduct, SDKPromotion } from './sdkRuntimeModels'; import { valueof } from './utils'; import { EventType, ProductActionType, PromotionActionType } from './types'; type EventHandlerFunction = (element: HTMLLinkElement | HTMLFormElement) => T; export interface IEvents { addEventHandler(domEvent: string, selector: string | Node, eventName: EventHandlerFunction | string, data: EventHandlerFunction | SDKEventAttrs, eventType: valueof): void; logAST(): void; logCheckoutEvent(step: number, option?: string, attrs?: SDKEventAttrs, customFlags?: SDKEventCustomFlags): void; logCommerceEvent(commerceEvent: SDKEvent, attrs?: SDKEventAttrs, options?: SDKEventOptions): void; logEvent(event: BaseEvent, eventOptions?: SDKEventOptions): void; logImpressionEvent(impression: SDKImpression | SDKImpression[], attrs?: SDKEventAttrs, customFlags?: SDKEventCustomFlags, eventOptions?: SDKEventOptions): void; logOptOut(): void; logPageView(): void; logProductActionEvent(productActionType: valueof, product: SDKProduct | SDKProduct[], attrs?: SDKEventAttrs, customFlags?: SDKEventCustomFlags, transactionAttributes?: TransactionAttributes, eventOptions?: SDKEventOptions): void; logPromotionEvent(promotionType: valueof, promotion: SDKPromotion | SDKPromotion[], attrs?: SDKEventAttrs, customFlags?: SDKEventCustomFlags, eventOptions?: SDKEventOptions): void; logPurchaseEvent(transactionAttributes: TransactionAttributes, product: SDKProduct | SDKProduct[], attrs?: SDKEventAttrs, customFlags?: SDKEventCustomFlags): void; logRefundEvent(transactionAttributes: TransactionAttributes, product: SDKProduct | SDKProduct[], attrs?: SDKEventAttrs, customFlags?: SDKEventCustomFlags): void; startTracking(callback: Callback): void; stopTracking(): void; } export {};