import type { HybridObject } from 'react-native-nitro-modules' import type { AndroidContentSizeCategory, IOSContentSizeCategory, WebContentSizeCategory } from '../../types' import type { UnistylesNativeMiniRuntime } from '../NativePlatform' import type { AppBreakpoint, AppThemeName, Dimensions, Insets } from '../types' type ColorScheme = 'light' | 'dark' | 'unspecified' type Orientation = 'portrait' | 'landscape' // used for Nitro. It's (Native + Cxx) type export interface UnistylesCxxMiniRuntime extends UnistylesNativeMiniRuntime { readonly themeName?: string readonly breakpoint?: string readonly hasAdaptiveThemes: boolean } // used for TS types export interface UnistylesMiniRuntime extends UnistylesCxxMiniRuntime { readonly colorScheme: ColorScheme readonly contentSizeCategory: IOSContentSizeCategory | AndroidContentSizeCategory | WebContentSizeCategory // additional metadata readonly themeName?: AppThemeName readonly breakpoint?: AppBreakpoint } export interface UnistylesRuntime extends HybridObject<{ ios: 'c++'; android: 'c++' }> { readonly colorScheme: ColorScheme readonly hasAdaptiveThemes: boolean readonly screen: Dimensions readonly themeName?: string readonly contentSizeCategory: string readonly breakpoint?: string readonly breakpoints: Record readonly insets: Insets readonly orientation: Orientation readonly pixelRatio: number readonly fontScale: number readonly rtl: boolean readonly isLandscape: boolean readonly isPortrait: boolean setTheme(themeName: string): void setAdaptiveThemes(isEnabled: boolean): void setImmersiveModeNative(isEnabled: boolean): void nativeSetRootViewBackgroundColor(color: number): void // private readonly miniRuntime: UnistylesCxxMiniRuntime }