import { TrackStrategy, TrackStrategyFactory, Tracker, TrackerFactory, } from "../dist/tracingJS/es"; // generate your own tracker or use default export class MyTracker extends Tracker { private mystrategy: TrackStrategy; constructor(strategy: TrackStrategy) { super(strategy); this.mystrategy = strategy; } track(event: Event): T | undefined { return this.mystrategy.track(event); } } // generate your own tracker factory or use default export class MyTrackerFactory extends TrackerFactory { static createMyTracker(strategy: TrackStrategy): MyTracker { return new MyTracker(strategy); } } // generate your own track strategy or use default export class MyTrackStrategy implements TrackStrategy { constructor() {} track(event: Event): any | undefined { return {}; } } // generate your own track strategy factory or use default export class MyTrackStrategyFactory extends TrackStrategyFactory { static createMyTrack(): TrackStrategy { return new MyTrackStrategy(); } }