import type { FunnelStartedFields, PurchaseFields, TestStartedFields, UserClickFields, UserEventHandler, ViewContentFields, } from '@xylabs/pixel' import { type EmptyObject } from '@xylabs/sdk-js' import { XyCustomEvent } from './CustomEvent.ts' class XyUserEventHandler implements UserEventHandler { async funnelStarted(data: FunnelStartedFields | T) { const event = new XyCustomEvent('FunnelStarted') return await event.send(data) } async purchase(data: PurchaseFields | T) { const event = new XyCustomEvent('TestStarted') return await event.send(data) } async testStarted(data: TestStartedFields | T) { const event = new XyCustomEvent('TestStarted') return await event.send(data) } async userClick(data: UserClickFields | T) { const event = new XyCustomEvent('UserClick') return await event.send(data) } async viewContent(data: ViewContentFields | T) { const event = new XyCustomEvent('ViewContent') return await event.send(data) } } export { XyUserEventHandler }