import { ReactNode } from 'react'; import { EnvironmentBridge, RealtimeProviderProps } from './react.js'; export { BackfillContext, BackfillReason, Backoff, BackoffOptions, BroadcastBinding, BroadcastMessage, BroadcastWire, ChannelDiagnostics, ChannelHandle, ChannelMetrics, ChannelNamespace, ChannelNamespaceCollisionError, ChannelNamespaceSpec, ChannelSpec, ClassifyInput, ConnectionHealth, DIAGNOSTICS_GLOBAL, Dedupe, DedupeOptions, DiagnosticEvent, DiagnosticLevel, DiagnosticsSink, DiagnosticsSnapshot, EnvironmentSignal, EventOrigin, EventQueue, EventQueueOptions, LocalWrite, ManagerTimers, MatrxBroadcastEnvelope, ObservedRecord, OriginReason, OriginVerdict, PostgresChangeBinding, PostgresChangeDelivery, PostgresChangeEvent, PostgresChangeFilter, PostgresChangePayload, PresenceMember, PresenceOptions, PresenceRoom, PresenceRuntime, PresenceStateLike, PresenceTimers, QueueTask, RECONNECT_ALARM_ATTEMPTS, RECONNECT_GIVE_UP_ATTEMPTS, RawWireOptions, RealtimeChannelLike, RealtimeClientLike, RealtimeManager, RealtimeManagerOptions, RealtimeProvider, RealtimeStatus, SettleResult, TOPIC_PREFIX, TypingMember, TypingOptions, TypingState, TypingTracker, UseChannelOptions, UseChannelResult, UsePresenceArgs, UsePresenceResult, UseTypingArgs, UseTypingResult, WriteLedger, WriteLedgerOptions, WriteTicket, canonicalRevision, clientSessionId, createBackoff, createBrowserEnvironment, createChannelMetrics, createConsoleDiagnostics, createDedupe, createEventQueue, createInertEnvironment, createPresenceRuntime, createRealtimeManager, createTypingTracker, createWriteLedger, currentRealtimeManager, defaultEnvironment, defineChannelNamespace, installDiagnosticsConsoleHandle, listChannelNamespaces, onRealtimeManagerChange, randomId, realtimeDiagnostics, registerChannelMetrics, resetChannelRegistryForTests, setAmbientRealtimeManager, subscribeToRealtimeManager, uniqueChannelTopic, useChannel, useIsRealtimeProviderMounted, usePresence, useRealtimeDiagnostics, useRealtimeHealth, useRealtimeManager, useRequiredRealtimeManager, useTyping } from './react.js'; interface ReactNativeEnvironmentOptions { /** * Optional reachability source, e.g. a NetInfo subscription the host already * owns. When supplied, network-restore reconnects skip the backoff delay. */ reachability?: { isOnline: () => boolean; subscribe: (listener: (online: boolean) => void) => () => void; }; } declare function createReactNativeEnvironment(options?: ReactNativeEnvironmentOptions): EnvironmentBridge; /** * `@ai-matrx/realtime/native` — the React Native / Expo binding. * * It is the `/react` binding with the platform seam already filled: the * AppState-driven environment bridge is wired in, so an Expo app mounts * `` and gets background/foreground * survival, reconnect, and reconcile-on-wake with no mobile-specific code of * its own (C23/C25 — the platform layer is built INSIDE the package). * * Everything else — hooks, presence, typing, diagnostics — is identical to web, * because the core is platform-agnostic by construction (D4). */ type NativeRealtimeProviderProps = Omit & { reachability?: ReactNativeEnvironmentOptions["reachability"]; }; declare function NativeRealtimeProvider(props: NativeRealtimeProviderProps): ReactNode; export { EnvironmentBridge, NativeRealtimeProvider, type NativeRealtimeProviderProps, type ReactNativeEnvironmentOptions, RealtimeProviderProps, createReactNativeEnvironment };