declare module "@sentiance-react-native/legacy" { import { EmitterSubscription, EventSubscriptionVendor, NativeEventEmitter, } from "react-native"; export type LocationPermission = "ALWAYS" | "ONLY_WHILE_IN_USE" | "NEVER"; export type SdkInitState = | "NOT_INITIALIZED" | "INIT_IN_PROGRESS" | "INITIALIZED" | "RESETTING" | "UNRECOGNIZED_STATE"; export type SdkResetFailureReason = | "SDK_INIT_IN_PROGRESS" | "SDK_RESET_IN_PROGRESS" | "SDK_RESET_UNKNOWN_ERROR"; export type InitIssue = | "INVALID_CREDENTIALS" | "CHANGED_CREDENTIALS" | "SERVICE_UNREACHABLE" | "LINK_FAILED" | "SDK_RESET_IN_PROGRESS" | "INITIALIZATION_ERROR"; export type TripType = "TRIP_TYPE_SDK" | "TRIP_TYPE_EXTERNAL"; export type SdkEvent = | "SENTIANCE_STATUS_UPDATE_EVENT" | "SENTIANCE_USER_LINK_EVENT" | "SENTIANCE_USER_ACTIVITY_UPDATE_EVENT" | "SENTIANCE_ON_TRIP_TIMED_OUT_EVENT" | "SENTIANCE_VEHICLE_CRASH_EVENT"; export type SDKStatusUpdateListener = (sdkStatus: SdkStatus) => void; export type SDKUserLinkListener = (param: { installId: string }) => void; export type SDKUserActivityUpdateListener = ( userActivity: UserActivity ) => void; export type SDKCrashEventListener = (crashEvent: CrashEvent) => void; export type SdkEventListener = | SDKStatusUpdateListener | SDKUserLinkListener | SDKUserActivityUpdateListener | SDKCrashEventListener; export enum TransportMode { UNKNOWN = 1, CAR, BICYCLE, ON_FOOT, TRAIN, TRAM, BUS, PLANE, BOAT, METRO, RUNNING, } export interface VehicleCrashEvent { time: number; location?: Location; magnitude?: number; speedAtImpact?: number; deltaV?: number; confidence?: number; } export interface CrashEvent { time: number; lastKnownLocation?: Location; } export interface Location { latitude: string; longitude: string; accuracy?: string; // Android only altitude?: string; // Android only provider?: string; // Android only } export interface StationaryInfo { location?: Location; } export interface TripInfo { type: | "TRIP_TYPE_SDK" | "TRIP_TYPE_EXTERNAL" | "TRIP_TYPE_UNRECOGNIZED" | "ANY"; } export interface UserActivity { type: | "USER_ACTIVITY_TYPE_TRIP" | "USER_ACTIVITY_TYPE_STATIONARY" | "USER_ACTIVITY_TYPE_UNKNOWN" | "USER_ACTIVITY_TYPE_UNRECOGNIZED"; tripInfo?: TripInfo; stationaryInfo?: StationaryInfo; } export interface MetadataObject { [key: string]: string; } export interface UserAccessToken { tokenId: string; expiryDate?: string; // Android only } export interface SdkStatus { startStatus: string; canDetect: boolean; isRemoteEnabled: boolean; isAccelPresent: boolean; isGyroPresent: boolean; isGpsPresent: boolean; wifiQuotaStatus: string; mobileQuotaStatus: string; diskQuotaStatus: string; locationPermission: LocationPermission; isBatterySavingEnabled?: boolean; isActivityRecognitionPermGranted?: boolean; isBgAccessPermGranted?: boolean; // iOS only locationSetting?: string; // Android only isAirplaneModeEnabled?: boolean; // Android only isLocationAvailable?: boolean; // Android only isGooglePlayServicesMissing?: boolean; // Android only isBatteryOptimizationEnabled?: boolean; // Android only isBackgroundProcessingRestricted?: boolean; // Android only isPreciseLocationAuthorizationGranted: boolean; isSchedulingExactAlarmsPermitted?: boolean; // Android only } export interface RNSentianceConstructor extends EventSubscriptionVendor { init( appId: string, secret: string, baseURL: string | null, shouldStart: boolean ): Promise; initWithUserLinkingEnabled( appId: string, secret: string, baseURL: string | null, shouldStart: boolean ): Promise; start(): Promise; startWithStopDate(stopEpochTimeMs: number | null): Promise; stop(): Promise; reset(): Promise; getInitState(): Promise; getSdkStatus(): Promise; getVersion(): Promise; getUserId(): Promise; getUserAccessToken(): Promise; addUserMetadataField(label: string, value: string): Promise; addUserMetadataFields(metadata: MetadataObject): Promise; removeUserMetadataField(label: string): Promise; getWiFiQuotaLimit(): Promise; getWiFiQuotaUsage(): Promise; getMobileQuotaLimit(): Promise; getMobileQuotaUsage(): Promise; getDiskQuotaLimit(): Promise; getDiskQuotaUsage(): Promise; disableBatteryOptimization(): Promise; getUserActivity(): Promise; listenUserActivityUpdates(): Promise; listenTripTimeout(): Promise; userLinkCallback(success: boolean): void; getValueForKey(key: string, defaultValue: string): Promise; setValueForKey(key: string, value: string): void; startTrip( metadata: MetadataObject | null, hint: TransportMode ): Promise; stopTrip(): Promise; isTripOngoing(type: TripType): Promise; submitDetections(): Promise; updateSdkNotification(title: string, message: string): Promise; addTripMetadata(metadata: MetadataObject): Promise; isThirdPartyLinked(): Promise; isNativeInitializationEnabled(): Promise; enableNativeInitialization(): Promise; disableNativeInitialization(): Promise; listenVehicleCrashEvents(): Promise; invokeDummyVehicleCrash(): Promise; isVehicleCrashDetectionSupported(): Promise; } export interface RNSentianceEventEmitter extends NativeEventEmitter { addListener( eventType: SdkEvent, listener: SdkEventListener, context?: any ): EmitterSubscription; } export interface RNSentianceEventSubscriptions { sdkStatusSubscription?: EmitterSubscription; sdkUserLinkSubscription?: EmitterSubscription; sdkUserActivityUpdateSubscription?: EmitterSubscription; sdkCrashEventSubscription?: EmitterSubscription; sdkTripProfileListener?: EmitterSubscription; } const RNSentiance: RNSentianceConstructor; export default RNSentiance; }