Reference
Event Types
Complete reference for all events emitted by the Oxinion SDK event bus.
OxinionEventMap
All events are typed via the OxinionEventMap discriminated union exported from @oxinion/core.
typescript
1import type { OxinionEventMap } from '@oxinion/core';
2
3// Handler receives the correct payload type automatically
4oxinion.geofencing.listen('enter', (event: OxinionEventMap['geofence.entered']) => {
5 // event is fully typed
6});
All event types
geofence.entered
geofencingtypescript
{ geofenceId: string; userId: string; location: { lat: number; lng: number }; timestamp: string }
geofence.exited
geofencingtypescript
{ geofenceId: string; userId: string; location: { lat: number; lng: number }; timestamp: string }
geofence.dwelled
geofencingtypescript
{ geofenceId: string; userId: string; dwellMs: number; timestamp: string }
place.entered
placestypescript
{ place: { id: string; name: string; category: string }; userId: string; timestamp: string }
place.exited
placestypescript
{ place: { id: string; name: string }; userId: string; timestamp: string }
indoor.moved
indoortypescript
{ zoneId: string; floor: number; confidence: 1 | 2 | 3; source: 'ble' | 'wifi' | 'uwb' | 'qr'; accuracyMeters: number }
rewards.issued
rewardstypescript
{ rewardId: string; userId: string; type: 'points' | 'coupon'; amount: number; reason: string }
rewards.redeemed
rewardstypescript
{ rewardId: string; userId: string; redeemedAt: string }
dooh.impression
doohtypescript
{ screenId: string; campaignId: string; userId?: string; location: { lat: number; lng: number }; timestamp: string }
ar.session.started
artypescript
{ sessionId: string; anchorId: string; userId: string; timestamp: string }
ar.session.ended
artypescript
{ sessionId: string; durationMs: number; timestamp: string }