import { NativeModulesProxy, EventEmitter, Subscription } from 'expo-modules-core'; import ExpoSettings from './ExpoSettingsModule'; import { ChangeEventPayload, ThemeChangeEventPayload, Theme } from './ExpoSettings.types'; export function set(key: string, value: string): void { return ExpoSettings.set(key, value); } export function get(key: string): string | null { return ExpoSettings.get(key); } export function getTheme(): Theme { return ExpoSettings.getTheme(); } export function setTheme(theme: Theme): void { return ExpoSettings.setTheme(theme); } export function addThemeListener(listener: (event: ThemeChangeEventPayload) => void): Subscription { return emitter.addListener('onChangeTheme', listener); } const emitter = new EventEmitter(NativeModulesProxy.ExpoSettings ?? ExpoSettings); export function addChangeListener(listener: (event: ChangeEventPayload) => void): Subscription { return emitter.addListener('onChange', listener); } export { ChangeEventPayload, Theme };