declare module 'bsp-tracking' {
  interface TrackData {
    feature: string
    interaction: string
  }

  interface TrackingHandler {
    eventType: string
    setup: (
      element: HTMLElement,
      manager: TrackingManager,
      trackData: TrackData,
    ) => void
  }

  class TrackingManager {
    track(
      handler: TrackingHandler,
      selector: string | string[],
      trackData: TrackData,
    ): void
    sendData(eventType: string, trackData: TrackData, event?: Event): void
  }

  export const trackingManager: TrackingManager | null
  export const ClickHandler: TrackingHandler
}
