11import { BaseSignal } from '../shared/shared-types'
2-
32export type MobileSignalTypes = MobileSignal [ 'type' ]
43
4+ export type MobileSignalType = MobileSignal [ 'type' ]
5+
6+ export type MobileNavigationAction =
7+ | 'forward'
8+ | 'backward'
9+ | 'modal'
10+ | 'entering'
11+ | 'leaving'
12+ | 'page'
13+ | 'popup'
14+
15+ export type NetworkAction = 'request' | 'response'
16+
17+ export type LocalDataAction =
18+ | 'loaded'
19+ | 'updated'
20+ | 'saved'
21+ | 'deleted'
22+ | 'undefined'
23+
524export type MobileSignal =
625 | MobileInteractionSignal
726 | MobileNavigationSignal
@@ -10,20 +29,20 @@ export type MobileSignal =
1029 | MobileInstrumentationSignal
1130 | MobileUserDefinedSignal
1231
13- interface MobileRawSignal extends BaseSignal {
32+ interface MobileRawSignal < SignalType extends string > extends BaseSignal {
33+ type : SignalType
1434 anonymousId : string
15- type : string
1635 data : any
1736 timestamp : string
1837 index : any
1938}
2039
2140interface MobileNavigationData {
22- action : string
41+ action : MobileNavigationAction
2342 screen : string
2443}
2544
26- interface MobileNavigationSignal extends MobileRawSignal {
45+ interface MobileNavigationSignal extends MobileRawSignal < 'navigation' > {
2746 data : MobileNavigationData
2847}
2948
@@ -33,35 +52,32 @@ interface MobileInteractionData {
3352 data : any
3453}
3554
36- interface MobileInteractionSignal extends MobileRawSignal {
55+ interface MobileInteractionSignal extends MobileRawSignal < 'interaction' > {
3756 type : 'interaction'
3857 data : MobileInteractionData
3958}
4059
4160interface MobileNetworkData {
42- action : string
61+ action : NetworkAction
4362 url : string
4463 data : any
4564}
4665
47- interface MobileNetworkSignal extends MobileRawSignal {
48- static : 'network'
66+ interface MobileNetworkSignal extends MobileRawSignal < 'network' > {
4967 data : MobileNetworkData
5068}
5169
5270interface MobileLocalData {
53- action : string
71+ action : LocalDataAction
5472 identifier : string
5573 data : string
5674}
5775
58- interface MobileLocalDataSignal extends MobileRawSignal {
59- type : 'localData'
76+ interface MobileLocalDataSignal extends MobileRawSignal < 'localData' > {
6077 data : MobileLocalData
6178}
6279
63- interface MobileUserDefinedSignal extends MobileRawSignal {
64- type : 'userDefined'
80+ interface MobileUserDefinedSignal extends MobileRawSignal < 'userDefined' > {
6581 data : any
6682}
6783
@@ -70,6 +86,7 @@ interface MobileInstrumentationData {
7086 rawEvent : any
7187}
7288
73- interface MobileInstrumentationSignal extends MobileRawSignal {
89+ interface MobileInstrumentationSignal
90+ extends MobileRawSignal < 'instrumentation' > {
7491 data : MobileInstrumentationData
7592}
0 commit comments