export { forSession } from './companion-realtime.js';
import { type RemoteRuntimeEvents } from '@pellux/goodvibes-transport-realtime';
import { type GoodVibesSdkOptions, type GoodVibesSdk, type RuntimeEventRecord } from './client.js';
export interface ReactNativeGoodVibesSdkOptions extends GoodVibesSdkOptions {
    readonly WebSocketImpl?: typeof WebSocket | undefined;
}
export interface ReactNativeGoodVibesRealtime {
    runtime(): RemoteRuntimeEvents<RuntimeEventRecord>;
    viaWebSocket(webSocketImpl?: typeof WebSocket): RemoteRuntimeEvents<RuntimeEventRecord>;
}
export type ReactNativeGoodVibesSdk = Omit<GoodVibesSdk, 'realtime'> & {
    readonly realtime: ReactNativeGoodVibesRealtime;
};
/**
 * Create a GoodVibes SDK instance for React Native.
 *
 * Key differences from the browser factory:
 * - Realtime is WebSocket-only (`realtime.runtime()` / `realtime.viaWebSocket()`).
 *   SSE is not available in React Native.
 * - Requires a `WebSocket` implementation (e.g. the global provided by the
 *   React Native runtime or the `react-native` package). Pass
 *   `options.WebSocketImpl` when the global is not available.
 * - Returns `ReactNativeGoodVibesSdk` (extends `GoodVibesSdk` with a
 *   React-Native-specific `realtime` namespace).
 *
 * @example
 * // Example only: replace baseUrl and authToken with your own values.
 * import { createReactNativeGoodVibesSdk } from '@pellux/goodvibes-sdk/react-native';
 *
 * const sdk = createReactNativeGoodVibesSdk({
 *   baseUrl: 'https://daemon.example.com',
 *   authToken: await SecureStore.getItemAsync('token'),
 * });
 *
 * const events = sdk.realtime.viaWebSocket();
 * events.agents.on('AGENT_SPAWNING', ({ agentId }) => console.log(agentId));
 */
export declare function createReactNativeGoodVibesSdk(options: ReactNativeGoodVibesSdkOptions): ReactNativeGoodVibesSdk;
export { createIOSKeychainTokenStore, type IOSKeychainTokenStore, type IOSKeychainTokenStoreOptions, type KeychainAccessible, } from './client-auth/ios-keychain-token-store.js';
export { createAndroidKeystoreTokenStore, type AndroidKeystoreTokenStore, type AndroidKeystoreTokenStoreOptions, type AndroidAccessControl, type AndroidAccessible, } from './client-auth/android-keystore-token-store.js';
//# sourceMappingURL=react-native.d.ts.map