Model Reference
This is a compact lookup for types exported by package:eixam_connect_flutter/eixam_connect_flutter.dart. Field lists are intentionally short: they name the stable fields most host apps inspect.
Configuration
| Type | Purpose | Key fields |
|---|---|---|
EixamBootstrapConfig | Standard bootstrap input | appId, environment, notificationTexts, initialSession, customEndpoints, notificationPolicy, featureFlags, enableLogging |
EixamNotificationTexts | Required localized notification copy | Protection active title/body, Protection Mode title/body/channel, Protection SOS channel, pre-SOS, active SOS, and resolved SOS title/body |
EixamCustomEndpoints | Endpoints for EixamEnvironment.custom | apiBaseUrl, mqttUrl, websocketUrl |
EixamSdkConfig | Advanced runtime config for custom factory setup | apiBaseUrl, websocketUrl, enableLogging, networkTimeout, defaultLocaleCode |
EixamSession | Signed SDK identity from your backend | appId, externalUserId, userHash, sdkUserId, canonicalExternalUserId, refreshToken |
Use EixamSession.signed(...) for normal partner integrations.
Profile
| Type | Purpose | Key fields / helpers |
|---|---|---|
SdkUserProfile | Profile returned by GET /v1/sdk/me | id, appId, externalUserId, name, email, phone, address; splitDisplayNameForUi(), composeDisplayName(...) |
SdkUserProfileUpdate | Partial update for PUT /v1/sdk/me | name, email, phone, address; full(...) sends all fields |
SdkProfileValidators | Client-side profile validation | Use before updateSdkUserProfile(...) |
SdkProfileConstraints | Profile length/format constraints | Name/email/phone/address constraints |
SdkProfileClientValidationIssue | Local validation issue | field, kind |
SdkProfileValidationKind | Local validation kind | See enum values in SDK |
SdkProfileApiFieldHint | Backend field hint on ProfileHttpException | field, message |
SdkProfileFieldKey | Profile field key | name, email, phone, address |
Diagnostics
| Type | Purpose | Key fields |
|---|---|---|
SdkOperationalDiagnostics | Main runtime health snapshot | connectionState, session, telemetryPublishTopic, sosEventTopics, backendSosAvailable, deviceSosAvailable, canActivateSos, currentSosCapabilityLabel, lastPublicSosDeliveryChannel, lastTelRelayRx, backgroundTelemetryEnabled, bridge |
SdkBridgeDiagnostics | Bridge/relay/support diagnostics | lastDecision, relay publish attempt/result fields, terminal relay errors, pendingTelemetry, pendingSos |
PendingTelemetryDiagnostics | Queued telemetry diagnostic | signature, payload |
PendingSosDiagnostics | Queued SOS diagnostic | signature, message, positionSnapshot |
DeviceTelRelayRx | Decoded relay TEL sample | Peer/self payload and position, RSSI/SNR, remote device id |
Device
| Type | Purpose | Key fields |
|---|---|---|
DeviceStatus / DeviceRuntime | High-level device state | deviceId, nodeId, canonicalHardwareId, deviceAlias, model, paired, activated, connected, batteryLevel, batteryState, batterySource, firmwareVersion, lastSeen, signalQuality, lifecycleState, provisioningError, isReadyForSafety, approximateBatteryPercentage |
PreferredDevice | Remembered BLE device | deviceId, displayName, lastConnectedAt |
BleScanResult | BLE scan result for advanced/runtime setup | deviceId, canonicalHardwareId, name, rssi, connectable, advertisedServiceUuids, brandClassification, discoveredAt |
DeviceSosStatus | Device-side SOS state | state, previousState, transitionSource, triggerOrigin, lastEvent, updatedAt, packet metadata, countdown fields |
DeviceRuntimeStatus | Typed device runtime status packet | region, modemPreset, meshSpreadingFactor, isProvisioned, txEnabled, inetOk, positionConfirmed, nodeId, batteryPercent, telIntervalSeconds, rawBytes |
RuntimeIdentitySnapshot | BLE identity/command readiness | connectedBleNodeId, deviceId, serviceBleConnected, commandCapable, readinessReason, lastUpdatedAt |
BackendRegisteredDevice | Backend device registry record | id, hardwareId, firmwareVersion, hardwareModel, pairedAt, createdAt, updatedAt |
Firmware Updates
| Type | Purpose | Key fields |
|---|---|---|
DeviceFirmwareInfo | Connected device firmware context | deviceId, hardwareId, nodeId, hardwareModel, currentVersion, batteryPercentage, connected, readyForSafety |
FirmwareUpdatePolicy | App/update policy gates applied by the SDK | minDeviceBatteryPercentage, requireForeground, supportedHardwareModels |
FirmwareRelease | Release selected by update check | releaseId, version, hardwareModel, sha256Hash, fileSizeBytes, releaseNotes, bootloaderType, artifactKind, mandatory |
FirmwareUpdateEligibility | Eligibility result from update check | eligible, blockers, messages |
FirmwareUpdateCheck | Availability and eligibility result | device, updateAvailable, release, eligibility, checkedAt |
FirmwareUpdateSession | Started update session summary | sessionId, deviceId, releaseId, fromVersion, targetVersion, state, startedAt, completedAt, failure fields |
FirmwareUpdateProgress | Live update progress event | sessionId, deviceId, state, progressPercentage, byte counters, failure fields, updatedAt |
See Firmware Updates / OTA for how host apps should present blockers, progress, cancellation, failure, and recovery states.
SOS
| Type | Purpose | Key fields |
|---|---|---|
SosTriggerPayload | Input for SOS trigger/confirmation | message, triggerSource, optional OS widget activation context |
SosIncident | Current or historical SOS incident | id, state, positionSnapshot, createdAt, triggerSource, message, deliveryChannel |
PublicPreSosStatus | Public pre-SOS countdown | active, startedAt, expectedActivationAt, remainingSeconds, mirroredOnDevice, origin, cycleKey, owner, originatorNodeId, packetId |
OsSosWidgetActivation | Validated OS widget activation handed to the SDK | platform, actionId, nonce, timestamp, confirmationMode |
OsSosWidgetActivationResult | SDK handling result for an OS widget activation | outcome, source, platform, actionId, nonce, timestamp, confirmationMode, optional SOS or pre-SOS state |
SosHistoryTelemetry | Creation telemetry inside history | id, occurredAt, position and battery/coverage fields |
SosHistoryItem | One history item | id, state, createdAt, positionSnapshot, triggerSource, message, deliveryChannel, creationTelemetry, trail |
SosHistoryPage | Paginated history response | items, nextCursor, hasMore |
Contacts & Permissions
| Type | Purpose | Key fields |
|---|---|---|
EmergencyContact | Backend-synced emergency contact | id, name, phone, email, priority, language, createdAt, updatedAt |
PermissionState | Aggregated permission snapshot | location, notifications, bluetooth, bluetoothEnabled, hasLocationAccess, hasNotificationAccess, hasBluetoothAccess, canUseBluetooth |
Location Authority
| Type | Purpose | Key fields / values |
|---|---|---|
SdkResolvedLocation | SDK-selected location sample for SOS, PRE-SOS/DMP, telemetry, Android handoff, and UI preview | Coordinates, timestamp/freshness, source, and whether the sample is backend-authoritative |
SdkLocationSource | Source label for a resolved location | remoteRelayDevice, connectedDevice, phone, cachedFallback, backendSnapshot |
SdkResolvedLocationResolver | Applies SDK source-priority rules | Remote relay event location for that event only, fresh valid connected-device GPS, phone fallback, display-only cache/backend snapshots |
See Location Authority for source priority, telemetry publishing behavior, and Android handoff guardrails.
Protection
| Type | Purpose | Key fields |
|---|---|---|
ProtectionStatus | Current Protection Mode state | modeState, coverageLevel, runtimeState, readiness booleans, queue counts, platform, bleOwner, protectedDeviceId, command diagnostics |
ProtectionDiagnostics | Detailed native/runtime diagnostics | Wake, reconnect, queue, backend config, native backend handoff, notification/runtime state, and command fields |
ProtectionReadinessReport | Readiness result before arming | canArm, blockingIssues, warnings |
ProtectionBlockingIssue | One readiness blocker | type, message, canBeResolvedInline |
ProtectionModeOptions | Arming options | enableStoreAndForward, autoReconnectBle, autoFlushOnReconnect, allowDegradedMode, reconnectBackoff, healthCheckInterval |
EnterProtectionModeResult | Arming result | success, status, blockingIssues |
FlushProtectionQueuesResult | Queue flush result | flushedSosCount, flushedTelemetryCount, success |
Notifications
| Type | Purpose | Key fields |
|---|---|---|
EixamNotificationIntent | Notification action/intention for host app | id, type, dedupeKey, createdAt, severity, incident/device/node context, localization keys, fallback copy, payload, shouldClearSosNotifications |
BleNotificationNavigationRequest | Navigation request from BLE/SOS notification | actionId, reason, state, deviceId, deviceAlias, nodeId |
Tracking, Telemetry, DMP
| Type | Purpose | Key fields |
|---|---|---|
TrackingPosition | Location sample | latitude, longitude, altitude, accuracy, speed, heading, source, timestamp, age, isStale |
SdkTelemetryPayload | Published telemetry payload | Timestamp, resolver-backed position when available, event/user/device ids, node/cluster metadata, battery and coverage snapshots |
SdkDeviceBatterySnapshot | Typed battery snapshot | rawValue, range |
SdkCoverageSnapshot | Typed coverage snapshot | signalStrength, networkType, isConnected |
DeathManPlan | Death Man Protocol plan | id, expectedReturnAt, gracePeriod, checkInWindow, autoTriggerSos, status |
Events & Realtime
| Type | Purpose | Key fields |
|---|---|---|
EixamSdkEvent | Base SDK event | timestamp |
SOSTriggeredEvent | SOS opened | incidentId |
SOSCancelledEvent | SOS cancelled | incidentId |
PositionUpdatedEvent | Position updated | timestamp |
DeviceDisconnectedEvent | Device disconnected | deviceId |
DeathManScheduledEvent | DMP scheduled | planId |
DeathManStatusChangedEvent | DMP status changed | planId, status |
DeathManEscalatedEvent | DMP escalated | planId |
RemoteRelaySosObservedEvent | Relay SOS observed | snapshot |
RemoteRelaySosBackendHandoffResultEvent | Relay SOS backend handoff result | snapshot, status, backend result fields, relay ACK fields |
RemoteRelaySosCancelHandoffResultEvent | Relay SOS cancel handoff result | originatorNodeId, relayNodeId, deviceId, status, reason, errorMessage, receivedAt |
RealtimeEvent | Raw realtime transport event | type, timestamp, payload |
Enums
| Enum | Values |
|---|---|
EixamEnvironment | production, sandbox, staging, custom |
EixamNotificationPolicy | sdkManaged, hostAppManaged |
DeathManStatus | scheduled, monitoring, overdue, awaitingConfirmation, confirmedSafe, escalated, cancelled, expired |
DeliveryMode | mobile, mesh, hybrid, unknown |
DeviceBatteryLevel | critical, low, medium, ok |
DeviceBatterySource | telPacket, sosPacket, unknown |
DeviceLifecycleState | unpaired, pairing, paired, activating, activated, ready, error |
DeviceSosState | inactive, preConfirm, active, acknowledged, resolved, unknown |
DeviceSosTransitionSource | device, app, backend, unknown |
FirmwareUpdateState | idle, checking, available, notAvailable, blocked, downloading, verifying, readyToTransfer, transferring, reconnecting, verifyingInstalledVersion, completed, failed, cancelled, recoveryRequired |
FirmwareUpdateBlocker | Update blocker values exposed by the SDK, including no connected device, unknown firmware version, unsupported hardware, low battery, unstable BLE, SOS/pre-SOS active, DMP active/overdue, protection runtime busy, app backgrounded, missing artifact/hash, and incompatible release |
RealtimeConnectionState | disconnected, connecting, connected, reconnecting, error |
SdkPermissionStatus | unknown, granted, denied, permanentlyDenied, restricted, limited, serviceDisabled |
SosDeliveryChannel | backendOnly, deviceOnly, backendAndDevice |
SosState | idle, arming, triggerRequested, triggeredLocal, sending, sent, acknowledged, cancelRequested, cancelled, resolved, failed |
OsSosWidgetPlatform | android, ios |
OsSosWidgetConfirmationMode | countdown, hold, appOpened |
OsSosWidgetActivationOutcome | countdownStarted, countdownAlreadyRunning, activeSosAlreadyRunning, activated, confirmationRequired, duplicateIgnored |
TrackingState | idle, starting, tracking, paused, stale, error |
BleDiscoveredDeviceBrand | eixam, meshtastic, unknown |
PublicPreSosOwner | app, device |
ProtectionModeState | off, arming, armed, degraded, stopping, error |
ProtectionCoverageLevel | none, partial, full |
ProtectionBleOwner | flutter, androidService, iosPlugin |
ProtectionPlatform | unknown, android, ios |
ProtectionCapabilityState | unknown, unavailable, configured |
ProtectionRuntimeState | inactive, starting, active, recovering, failed |
ProtectionBlockingIssueType | noSession, noPairedDevice, bluetoothDisabled, locationPermissionMissing, notificationsPermissionMissing, platformBackgroundCapabilityMissing, hostRuntimeStartFailed |
EixamNotificationIntentType | Notification intent type values exposed by the SDK |
EixamNotificationIntentSeverity | Notification severity values exposed by the SDK |
RemoteRelaySosBackendHandoffStatus | submitted, skipped, failed |
RuntimeIdentityReadinessReason | Runtime identity readiness values exposed by the SDK |
Exceptions
All SDK exceptions extend EixamSdkException and expose code and message.
| Exception | Use |
|---|---|
AuthException | Session/auth failures |
NetworkException | Network or transport failures |
SosException / SosHttpException | SOS flow failures; HTTP variant includes statusCode |
TrackingException | Tracking/location failures |
DeviceException | Pairing, activation, BLE command, or runtime device failures |
ContactsException / ContactsHttpException | Contact flow failures; HTTP variant includes status/body/API details |
DeathManException | DMP failures |
ProfileHttpException | Profile HTTP failures with optional fieldHints |
Advanced Helpers
| Type | Use |
|---|---|
EixamConnectSdk | Main SDK facade |
EixamConnectSdkBootstrapper | Bootstrap registration function type |
EixamSignedSessionProvider | Function type for obtaining signed sessions |
ApiSdkFactory | Controlled runtime/factory setup for validation or support tooling |