import { ViewProps, TextProps, ViewStyle, TextStyle, StyleProp } from 'react-native'; /** * Props available on both React Native `Text` and `View` components. */ export type ReactNativeProps = Pick< ViewProps, Extract> > & Pick< TextProps, Extract> > & { style?: StyleProp< Pick> >; }; /** * React Native `Text` props, minus the `style` prop. */ export type StylessReactNativeTextProps = Omit; /** * React Native `View` props, minus the `style` prop. */ export type StylessReactNativeViewProps = Omit & { onPress?: () => void; }; /** * An intersection between React Native `View` and `Text` props, minus the * `style` prop. */ export type StylessReactNativeProps = Omit & { onPress?: () => void; }; /** * An object containing props targetting either `Text`, `View`, or both. */ export type ReactNativePropsDefinitions = { /** * Props that will only apply to `Text`-backed renderers. */ text?: StylessReactNativeTextProps; /** * Props that will only apply to `View`-backed renderers. */ view?: StylessReactNativeViewProps; /** * Props that will apply to both `View` and `Text`-backed renderers. */ native?: StylessReactNativeProps; }; /** * An object containing props targetting either `Text` or `View`. */ export type ReactNativePropsSwitch = { /** * Props that will only apply to `Text`-wrapped renderers. */ text?: StylessReactNativeTextProps; /** * Props that will only apply to `View`-wrapped renderers. */ view?: StylessReactNativeViewProps; };