'use client'; import type { ViewProps } from 'react-native'; // eslint-disable-next-line @react-native/no-deep-imports import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent'; import type { DirectEventHandler, Float, WithDefault, } from 'react-native/Libraries/Types/CodegenTypes'; // eslint-disable-next-line @typescript-eslint/ban-types type GenericEmptyEvent = Readonly<{}>; type DisplayModeWillChangeEvent = { currentDisplayMode: string; nextDisplayMode: string; }; type SplitViewDisplayModeButtonVisibility = 'always' | 'automatic' | 'never'; type SplitViewSplitBehavior = 'automatic' | 'displace' | 'overlay' | 'tile'; type SplitViewPrimaryEdge = 'leading' | 'trailing'; type SplitViewDisplayMode = | 'automatic' | 'secondaryOnly' | 'oneBesideSecondary' | 'oneOverSecondary' | 'twoBesideSecondary' | 'twoOverSecondary' | 'twoDisplaceSecondary'; type SplitViewOrientation = | 'inherit' | 'all' | 'allButUpsideDown' | 'portrait' | 'portraitUp' | 'portraitDown' | 'landscape' | 'landscapeLeft' | 'landscapeRight'; interface ColumnMetrics { minimumPrimaryColumnWidth?: WithDefault; maximumPrimaryColumnWidth?: WithDefault; preferredPrimaryColumnWidthOrFraction?: WithDefault; minimumSupplementaryColumnWidth?: WithDefault; maximumSupplementaryColumnWidth?: WithDefault; preferredSupplementaryColumnWidthOrFraction?: WithDefault; // iOS 26 only minimumSecondaryColumnWidth?: WithDefault; preferredSecondaryColumnWidthOrFraction?: WithDefault; minimumInspectorColumnWidth?: WithDefault; maximumInspectorColumnWidth?: WithDefault; preferredInspectorColumnWidthOrFraction?: WithDefault; } interface NativeProps extends ViewProps { // Appearance preferredDisplayMode?: WithDefault; preferredSplitBehavior?: WithDefault; primaryEdge?: WithDefault; showSecondaryToggleButton?: WithDefault; displayModeButtonVisibility?: WithDefault< SplitViewDisplayModeButtonVisibility, 'automatic' >; columnMetrics?: ColumnMetrics; orientation?: WithDefault; // Interactions presentsWithGesture?: WithDefault; showInspector?: WithDefault; // Custom events onCollapse?: DirectEventHandler; onDisplayModeWillChange?: DirectEventHandler; onExpand?: DirectEventHandler; onInspectorHide?: DirectEventHandler; } export default codegenNativeComponent('RNSSplitViewHost', {});