react-native-flic2 2.0.0-alpha.39 → 2.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.bak.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.bak.d.ts","sourceRoot":"","sources":["../../../src/index.bak.tsx"],"names":[],"mappings":""}
@@ -1,81 +1,199 @@
1
- import type { CodegenTypes } from 'react-native';
2
- import type { MultiplyEvent, ManagerStateChangeEvent, ScanStatusChangeEvent, ButtonEvent, FlicButton, TriggerModeType, LatencyModeType } from './NativeFlic2';
3
- export declare function multiply(a: number, b: number): number;
4
- export declare const onMultiply: CodegenTypes.EventEmitter<MultiplyEvent>;
5
- export declare function initialize(background: boolean): Promise<{
6
- success: boolean;
7
- message: string;
8
- }>;
9
- export declare function getButtons(): Promise<FlicButton[]>;
10
- export declare function scanForButtons(): Promise<{
11
- success: boolean;
12
- message: string;
13
- }>;
14
- export declare function stopScan(): Promise<{
15
- success: boolean;
16
- message: string;
17
- }>;
18
- export declare function forgetButton(uuid: string): Promise<{
19
- success: boolean;
20
- message: string;
21
- }>;
22
- export declare function connectAllKnownButtons(): Promise<{
23
- success: boolean;
24
- message: string;
25
- }>;
26
- export declare function disconnectAllKnownButtons(): Promise<{
27
- success: boolean;
28
- message: string;
29
- }>;
30
- export declare function forgetAllButtons(): Promise<{
31
- success: boolean;
32
- message: string;
33
- }>;
34
- export declare function isScanning(): Promise<boolean>;
35
- export declare function connectButton(uuid: string): Promise<{
36
- success: boolean;
37
- message: string;
38
- }>;
39
- export declare function disconnectButton(uuid: string): Promise<{
40
- success: boolean;
41
- message: string;
42
- }>;
43
- /**
44
- * Sets the trigger mode for a button.
45
- *
46
- * @platform iOS
47
- * @param uuid - Button UUID
48
- * @param mode - Trigger mode (0-3)
49
- * @returns Promise that resolves on iOS, rejects with NOT_SUPPORTED_ON_ANDROID on Android
50
- *
51
- * **Note:** This feature is only available on iOS. On Android, this will reject due to
52
- * limitations in the Android Flic2 library v1.1.0+.
53
- */
54
- export declare function setTriggerMode(uuid: string, mode: TriggerModeType): Promise<{
55
- success: boolean;
56
- message: string;
57
- }>;
58
- /**
59
- * Sets the latency mode for a button.
60
- *
61
- * @platform iOS
62
- * @param uuid - Button UUID
63
- * @param mode - Latency mode (0-1)
64
- * @returns Promise that resolves on iOS, rejects with NOT_SUPPORTED_ON_ANDROID on Android
65
- *
66
- * **Note:** This feature is only available on iOS. On Android, this will reject due to
67
- * limitations in the Android Flic2 library v1.1.0+.
68
- */
69
- export declare function setLatencyMode(uuid: string, mode: LatencyModeType): Promise<{
70
- success: boolean;
71
- message: string;
72
- }>;
73
- export declare function setNickname(uuid: string, nickname: string): Promise<{
74
- success: boolean;
75
- message: string;
76
- }>;
77
- export declare const onManagerStateChange: CodegenTypes.EventEmitter<ManagerStateChangeEvent>;
78
- export declare const onScanStatusChange: CodegenTypes.EventEmitter<ScanStatusChangeEvent>;
79
- export declare const onButtonEvent: CodegenTypes.EventEmitter<ButtonEvent>;
80
- export type { MultiplyEvent, ManagerStateChangeEvent, ScanStatusChangeEvent, ButtonEvent, FlicButton, FlicManagerState, FlicButtonState, FlicTriggerMode, FlicLatencyMode, FlicScannerEvent, TriggerModeType, LatencyModeType, } from './NativeFlic2';
1
+ import { TypedEmitter } from './lib/typedEventEmitter';
2
+ import { type ButtonEvent, type FlicButton, type LatencyModeType, type ManagerStateChangeEvent, type ScanStatusChangeEvent, type TriggerModeType } from './NativeFlic2';
3
+ declare class Flic2 {
4
+ private isFlic2ManagerInitialized;
5
+ private sessionId;
6
+ eventEmitter: TypedEmitter<{
7
+ buttonEvent: (event: ButtonEvent) => void;
8
+ managerStateChange: (event: ManagerStateChangeEvent) => void;
9
+ scanStatusChange: (event: ScanStatusChangeEvent) => void;
10
+ managerInitialized: () => void;
11
+ }>;
12
+ /**
13
+ * Constructor.
14
+ *
15
+ * @class
16
+ * @version 2.0.0
17
+ */
18
+ constructor();
19
+ /**
20
+ * Initialize the Flic2 manager.
21
+ *
22
+ * @returns A promise that resolves when the Flic2 manager is initialized.
23
+ */
24
+ initialize(): Promise<boolean>;
25
+ /**
26
+ * Scan for buttons.
27
+ *
28
+ * @returns A promise that resolves when the scan is started. Events will be emitted for the scan process.
29
+ */
30
+ startScan(): Promise<{
31
+ success: boolean;
32
+ message: string;
33
+ }>;
34
+ /**
35
+ * Stop the scan.
36
+ *
37
+ * @returns A promise that resolves when the scan is stopped.
38
+ */
39
+ stopScan(): Promise<{
40
+ success: boolean;
41
+ message: string;
42
+ }>;
43
+ /**
44
+ * Called when the Flic2 manager is initialized.
45
+ */
46
+ onInitialized(): void;
47
+ /**
48
+ * Check if the Flic2 manager is initialized.
49
+ *
50
+ * @returns True if the Flic2 manager is initialized, false otherwise.
51
+ */
52
+ isInitialized(): boolean;
53
+ /**
54
+ * Connect all known buttons.
55
+ *
56
+ * @returns A promise that resolves when the all known buttons are connected.
57
+ */
58
+ connectAllKnownButtons(): Promise<{
59
+ success: boolean;
60
+ message: string;
61
+ }>;
62
+ /**
63
+ * Disconnect all known buttons.
64
+ *
65
+ * @returns A promise that resolves when the all known buttons are disconnected.
66
+ */
67
+ disconnectAllKnownButtons(): Promise<{
68
+ success: boolean;
69
+ message: string;
70
+ }>;
71
+ /**
72
+ * Forget all buttons.
73
+ *
74
+ * @returns A promise that resolves when the all buttons are forgotten.
75
+ */
76
+ forgetAllButtons(): Promise<{
77
+ success: boolean;
78
+ message: string;
79
+ }>;
80
+ /**
81
+ * Check if a scan is currently running.
82
+ *
83
+ * @returns A promise that resolves to true if scanning, false otherwise.
84
+ */
85
+ isScanning(): Promise<boolean>;
86
+ /**
87
+ * Forget a specific button by UUID.
88
+ *
89
+ * @param uuid - The UUID of the button to forget.
90
+ * @returns A promise that resolves when the button is forgotten.
91
+ */
92
+ forgetButton(uuid: string): Promise<{
93
+ success: boolean;
94
+ message: string;
95
+ }>;
96
+ /**
97
+ * Connect a button.
98
+ *
99
+ * @param uuid - The UUID of the button to connect.
100
+ * @returns A promise that resolves when the button is connected.
101
+ */
102
+ buttonConnect(uuid: string): Promise<{
103
+ success: boolean;
104
+ message: string;
105
+ }>;
106
+ /**
107
+ * Disconnect a button.
108
+ *
109
+ * @param uuid - The UUID of the button to disconnect.
110
+ * @returns A promise that resolves when the button is disconnected.
111
+ */
112
+ buttonDisconnect(uuid: string): Promise<{
113
+ success: boolean;
114
+ message: string;
115
+ }>;
116
+ /**
117
+ * Set the trigger mode of a button.
118
+ *
119
+ * @param uuid - The UUID of the button to set the trigger mode of.
120
+ * @param mode - The trigger mode to set.
121
+ * @returns A promise that resolves when the trigger mode is set.
122
+ */
123
+ buttonSetTriggerMode(uuid: string, mode: TriggerModeType): Promise<{
124
+ success: boolean;
125
+ message: string;
126
+ }>;
127
+ /**
128
+ * Set the latency mode of a button.
129
+ *
130
+ * @param uuid - The UUID of the button to set the latency mode of.
131
+ * @param mode - The latency mode to set.
132
+ * @returns A promise that resolves when the latency mode is set.
133
+ */
134
+ buttonSetLatencyMode(uuid: string, mode: LatencyModeType): Promise<{
135
+ success: boolean;
136
+ message: string;
137
+ }>;
138
+ /**
139
+ * Set the nickname of a button.
140
+ *
141
+ * @param uuid - The UUID of the button to set the nickname of.
142
+ * @param nickname - The nickname to set.
143
+ * @returns A promise that resolves when the nickname is set.
144
+ */
145
+ buttonSetNickname(uuid: string, nickname: string): Promise<{
146
+ success: boolean;
147
+ message: string;
148
+ }>;
149
+ /**
150
+ * Get all buttons.
151
+ *
152
+ * @returns A promise that resolves with an array of FlicButton instances.
153
+ */
154
+ getButtons(): Promise<FlicButton[]>;
155
+ /**
156
+ * Get a button by UUID.
157
+ *
158
+ * @param uuid - The UUID of the button to get.
159
+ * @returns A promise that resolves with the FlicButton instance or null if the button is not found.
160
+ */
161
+ getButton(uuid: string): Promise<FlicButton | null>;
162
+ /**
163
+ * Get the battery health status of a button.
164
+ *
165
+ * @param uuid - The UUID of the button to check.
166
+ * @returns A promise that resolves to true if battery is OK (voltage > 2.65V), false otherwise.
167
+ * @throws Error if the button is not found.
168
+ */
169
+ getBatteryHealth(uuid: string): Promise<boolean>;
170
+ /**
171
+ * Check if battery voltage is OK based on the 2.65V threshold.
172
+ *
173
+ * @param voltage - The battery voltage in volts.
174
+ * @returns True if voltage is above 2.65V (battery is OK), false otherwise.
175
+ */
176
+ private isBatteryVoltageOk;
177
+ /**
178
+ * Called when a button event is received from the native side.
179
+ *
180
+ * @param event - The button event.
181
+ */
182
+ private onNativeButtonEvent;
183
+ /**
184
+ * Called when a manager state change event is received from the native side.
185
+ *
186
+ * @param event - The manager state change event.
187
+ */
188
+ private onNativeManagerStateChange;
189
+ /**
190
+ * Called when a scan status change event is received from the native side.
191
+ *
192
+ * @param event - The scan status change event.
193
+ */
194
+ private onNativeScanStatusChange;
195
+ }
196
+ declare const _default: Flic2;
197
+ export default _default;
198
+ export type * from './NativeFlic2';
81
199
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ type EventMap = Record<string, (...args: any[]) => void>;
2
+ export declare class TypedEmitter<E extends EventMap> {
3
+ private listeners;
4
+ on<K extends keyof E>(event: K, fn: E[K]): {
5
+ remove: () => void;
6
+ };
7
+ off<K extends keyof E>(event: K, fn: E[K]): this;
8
+ once<K extends keyof E>(event: K, fn: E[K]): {
9
+ remove: () => void;
10
+ };
11
+ emit<K extends keyof E>(event: K, ...args: Parameters<E[K]>): boolean;
12
+ clear(): this;
13
+ }
14
+ export {};
15
+ //# sourceMappingURL=typedEventEmitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typedEventEmitter.d.ts","sourceRoot":"","sources":["../../../../src/lib/typedEventEmitter.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,CAAC;AAEzD,qBAAa,YAAY,CAAC,CAAC,SAAS,QAAQ;IAE1C,OAAO,CAAC,SAAS,CAAsC;IAEvD,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;QAAE,MAAM,EAAE,MAAM,IAAI,CAAA;KAAE;IASjE,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAOhD,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;QAAE,MAAM,EAAE,MAAM,IAAI,CAAA;KAAE;IAanE,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;IAoBrE,KAAK,IAAI,IAAI;CAOd"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "react-native-flic2",
3
- "version": "2.0.0-alpha.39",
3
+ "version": "2.0.0-beta.2",
4
4
  "description": "React Native Flic plugin made with the Flic2 SDK (unofficial)",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
7
7
  "exports": {
8
8
  ".": {
9
- "source": "./src/index.tsx",
9
+ "source": "./src/index.ts",
10
10
  "types": "./lib/typescript/src/index.d.ts",
11
11
  "default": "./lib/module/index.js"
12
12
  },
@@ -85,7 +85,7 @@
85
85
  },
86
86
  "peerDependencies": {
87
87
  "react": "*",
88
- "react-native": "*"
88
+ "react-native": ">=0.81.0"
89
89
  },
90
90
  "release-it": {
91
91
  "git": {
@@ -6,12 +6,6 @@ import {
6
6
 
7
7
  // MARK: - Event Types
8
8
 
9
- export type MultiplyEvent = {
10
- a: number;
11
- b: number;
12
- result: number;
13
- };
14
-
15
9
  export type ManagerStateChangeEvent = {
16
10
  event: 'restored' | 'stateChanged';
17
11
  state?: number;
@@ -19,9 +13,37 @@ export type ManagerStateChangeEvent = {
19
13
  message?: string;
20
14
  };
21
15
 
16
+ export enum ScanResult {
17
+ SUCCESS = 0,
18
+ ALREADY_RUNNING = 1,
19
+ BLUETOOTH_NOT_ACTIVATED = 2,
20
+ UNKNOWN = 3,
21
+ NO_PUBLIC_BUTTON_DISCOVERED = 4,
22
+ ALREADY_CONNECTED_TO_ANOTHER_DEVICE = 5,
23
+ CONNECTION_TIMEOUT = 6,
24
+ INVALID_VERIFIER = 7,
25
+ BLE_PAIRING_FAILED_PREVIOUS_PAIRING_ALREADY_EXISTING = 8,
26
+ BLE_PAIRING_FAILED_USER_CANCELED = 9,
27
+ BLE_PAIRING_FAILED_UNKNOWN_REASON = 10,
28
+ APP_CREDENTIALS_DONT_MATCH = 11,
29
+ USER_CANCELED = 12,
30
+ INVALID_BLUETOOTH_ADDRESS = 13,
31
+ GENUINE_CHECK_FAILED = 14,
32
+ TOO_MANY_APPS = 15,
33
+ COULD_NOT_SET_BLUETOOTH_NOTIFY = 16,
34
+ COULD_NOT_DISCOVER_BLUETOOTH_SERVICES = 17,
35
+ BUTTON_DISCONNECTED_DURING_VERIFICATION = 18,
36
+ FAILED_TO_ESTABLISH = 19,
37
+ CONNECTION_LIMIT_REACHED = 20,
38
+ NOT_IN_PUBLIC_MODE = 21,
39
+ }
40
+
41
+ export type ScanStatus = 'started' | 'completion';
42
+
22
43
  export type ScanStatusChangeEvent = {
23
- event: number;
24
- eventName: string;
44
+ event: ScanStatus;
45
+ eventName: ScanStatus;
46
+ result?: ScanResult;
25
47
  };
26
48
 
27
49
  export type ButtonEvent = {
@@ -42,8 +64,9 @@ export type ButtonEvent = {
42
64
  | 'nicknameUpdate';
43
65
  queued?: boolean;
44
66
  age?: number;
45
- voltage?: number;
46
67
  nickname?: string;
68
+ voltage?: number;
69
+ batteryVoltageOk?: boolean;
47
70
  error?: {
48
71
  code: number;
49
72
  message: string;
@@ -99,12 +122,6 @@ export type FlicTriggerMode =
99
122
 
100
123
  export type FlicLatencyMode = 'normal' | 'low';
101
124
 
102
- export type FlicScannerEvent =
103
- | 'discovered'
104
- | 'connected'
105
- | 'verified'
106
- | 'verificationFailed';
107
-
108
125
  // MARK: - Mode Types
109
126
 
110
127
  export type TriggerModeType = 0 | 1 | 2 | 3;
@@ -113,10 +130,6 @@ export type LatencyModeType = 0 | 1;
113
130
  // MARK: - Spec Interface
114
131
 
115
132
  export interface Spec extends TurboModule {
116
- // Keep multiply example
117
- multiply(a: number, b: number): number;
118
- readonly onMultiply: CodegenTypes.EventEmitter<MultiplyEvent>;
119
-
120
133
  // Manager methods
121
134
  initialize(
122
135
  background: boolean
@@ -0,0 +1,159 @@
1
+ // import type { CodegenTypes } from 'react-native';
2
+ // import type {
3
+ // MultiplyEvent,
4
+ // ManagerStateChangeEvent,
5
+ // ScanStatusChangeEvent,
6
+ // ButtonEvent,
7
+ // FlicButton,
8
+ // TriggerModeType,
9
+ // LatencyModeType,
10
+ // } from './NativeFlic2';
11
+ // import NativeFlic2 from './NativeFlic2';
12
+
13
+ // // MARK: - Example Functions (keeping for compatibility)
14
+
15
+ // export function multiply(a: number, b: number): number {
16
+ // return NativeFlic2.multiply(a, b);
17
+ // }
18
+
19
+ // export const onMultiply =
20
+ // NativeFlic2.onMultiply as CodegenTypes.EventEmitter<MultiplyEvent>;
21
+
22
+ // // MARK: - Manager Functions
23
+
24
+ // export function initialize(
25
+ // background: boolean
26
+ // ): Promise<{ success: boolean; message: string }> {
27
+ // return NativeFlic2.initialize(background);
28
+ // }
29
+
30
+ // export function getButtons(): Promise<FlicButton[]> {
31
+ // return NativeFlic2.getButtons();
32
+ // }
33
+
34
+ // export function scanForButtons(): Promise<{
35
+ // success: boolean;
36
+ // message: string;
37
+ // }> {
38
+ // return NativeFlic2.scanForButtons();
39
+ // }
40
+
41
+ // export function stopScan(): Promise<{ success: boolean; message: string }> {
42
+ // return NativeFlic2.stopScan();
43
+ // }
44
+
45
+ // export function forgetButton(
46
+ // uuid: string
47
+ // ): Promise<{ success: boolean; message: string }> {
48
+ // return NativeFlic2.forgetButton(uuid);
49
+ // }
50
+
51
+ // export function connectAllKnownButtons(): Promise<{
52
+ // success: boolean;
53
+ // message: string;
54
+ // }> {
55
+ // return NativeFlic2.connectAllKnownButtons();
56
+ // }
57
+
58
+ // export function disconnectAllKnownButtons(): Promise<{
59
+ // success: boolean;
60
+ // message: string;
61
+ // }> {
62
+ // return NativeFlic2.disconnectAllKnownButtons();
63
+ // }
64
+
65
+ // export function forgetAllButtons(): Promise<{
66
+ // success: boolean;
67
+ // message: string;
68
+ // }> {
69
+ // return NativeFlic2.forgetAllButtons();
70
+ // }
71
+
72
+ // export function isScanning(): Promise<boolean> {
73
+ // return NativeFlic2.isScanning();
74
+ // }
75
+
76
+ // // MARK: - Button Functions
77
+
78
+ // export function connectButton(
79
+ // uuid: string
80
+ // ): Promise<{ success: boolean; message: string }> {
81
+ // return NativeFlic2.connectButton(uuid);
82
+ // }
83
+
84
+ // export function disconnectButton(
85
+ // uuid: string
86
+ // ): Promise<{ success: boolean; message: string }> {
87
+ // return NativeFlic2.disconnectButton(uuid);
88
+ // }
89
+
90
+ // /**
91
+ // * Sets the trigger mode for a button.
92
+ // *
93
+ // * @platform iOS
94
+ // * @param uuid - Button UUID
95
+ // * @param mode - Trigger mode (0-3)
96
+ // * @returns Promise that resolves on iOS, rejects with NOT_SUPPORTED_ON_ANDROID on Android
97
+ // *
98
+ // * **Note:** This feature is only available on iOS. On Android, this will reject due to
99
+ // * limitations in the Android Flic2 library v1.1.0+.
100
+ // */
101
+ // export function setTriggerMode(
102
+ // uuid: string,
103
+ // mode: TriggerModeType
104
+ // ): Promise<{ success: boolean; message: string }> {
105
+ // return NativeFlic2.setTriggerMode(uuid, mode);
106
+ // }
107
+
108
+ // /**
109
+ // * Sets the latency mode for a button.
110
+ // *
111
+ // * @platform iOS
112
+ // * @param uuid - Button UUID
113
+ // * @param mode - Latency mode (0-1)
114
+ // * @returns Promise that resolves on iOS, rejects with NOT_SUPPORTED_ON_ANDROID on Android
115
+ // *
116
+ // * **Note:** This feature is only available on iOS. On Android, this will reject due to
117
+ // * limitations in the Android Flic2 library v1.1.0+.
118
+ // */
119
+ // export function setLatencyMode(
120
+ // uuid: string,
121
+ // mode: LatencyModeType
122
+ // ): Promise<{ success: boolean; message: string }> {
123
+ // return NativeFlic2.setLatencyMode(uuid, mode);
124
+ // }
125
+
126
+ // export function setNickname(
127
+ // uuid: string,
128
+ // nickname: string
129
+ // ): Promise<{ success: boolean; message: string }> {
130
+ // return NativeFlic2.setNickname(uuid, nickname);
131
+ // }
132
+
133
+ // // MARK: - Event Emitters
134
+
135
+ // export const onManagerStateChange =
136
+ // NativeFlic2.onManagerStateChange as CodegenTypes.EventEmitter<ManagerStateChangeEvent>;
137
+
138
+ // export const onScanStatusChange =
139
+ // NativeFlic2.onScanStatusChange as CodegenTypes.EventEmitter<ScanStatusChangeEvent>;
140
+
141
+ // export const onButtonEvent =
142
+ // NativeFlic2.onButtonEvent as CodegenTypes.EventEmitter<ButtonEvent>;
143
+
144
+ // // MARK: - Re-export Types
145
+
146
+ // export type {
147
+ // MultiplyEvent,
148
+ // ManagerStateChangeEvent,
149
+ // ScanStatusChangeEvent,
150
+ // ButtonEvent,
151
+ // FlicButton,
152
+ // FlicManagerState,
153
+ // FlicButtonState,
154
+ // FlicTriggerMode,
155
+ // FlicLatencyMode,
156
+ // FlicScannerEvent,
157
+ // TriggerModeType,
158
+ // LatencyModeType,
159
+ // } from './NativeFlic2';