1import { StyleProp } from 'react-native';
2import * as RN from 'react-native';
3
4declare module 'react-native' {
5  /**
6   * View
7   */
8  interface ViewProps {
9    className?: string;
10  }
11
12  interface ViewStyle {
13    /** @platform web */
14    backdropFilter?: string;
15    /** @platform web */
16    animationDelay?: string;
17    /** @platform web */
18    animationDirection?: string;
19    /** @platform web */
20    animationDuration?: string;
21    /** @platform web */
22    animationFillMode?: string;
23    /** @platform web */
24    animationName?: string | any[];
25    /** @platform web */
26    animationIterationCount?: number | 'infinite';
27    /** @platform web */
28    animationPlayState?: string;
29    /** @platform web */
30    animationTimingFunction?: string;
31    /** @platform web */
32    backgroundAttachment?: string;
33    /** @platform web */
34    backgroundBlendMode?: string;
35    /** @platform web */
36    backgroundClip?: string;
37    /** @platform web */
38    backgroundImage?: string;
39    /** @platform web */
40    backgroundOrigin?: 'border-box' | 'content-box' | 'padding-box';
41    /** @platform web */
42    backgroundPosition?: string;
43    /** @platform web */
44    backgroundRepeat?: string;
45    /** @platform web */
46    backgroundSize?: string;
47    /** @platform web */
48    boxShadow?: string;
49    /** @platform web */
50    boxSizing?: string;
51    /** @platform web */
52    clip?: string;
53    /** @platform web */
54    cursor?: string;
55    /** @platform web */
56    filter?: string;
57    /** @platform web */
58    gridAutoColumns?: string;
59    /** @platform web */
60    gridAutoFlow?: string;
61    /** @platform web */
62    gridAutoRows?: string;
63    /** @platform web */
64    gridColumnEnd?: string;
65    /** @platform web */
66    gridColumnGap?: string;
67    /** @platform web */
68    gridColumnStart?: string;
69    /** @platform web */
70    gridRowEnd?: string;
71    /** @platform web */
72    gridRowGap?: string;
73    /** @platform web */
74    gridRowStart?: string;
75    /** @platform web */
76    gridTemplateColumns?: string;
77    /** @platform web */
78    gridTemplateRows?: string;
79    /** @platform web */
80    gridTemplateAreas?: string;
81    /** @platform web */
82    outline?: string;
83    /** @platform web */
84    outlineColor?: string;
85    /** @platform web */
86    overflowX?: string;
87    /** @platform web */
88    overflowY?: string;
89    /** @platform web */
90    overscrollBehavior?: 'auto' | 'contain' | 'none';
91    /** @platform web */
92    overscrollBehaviorX?: 'auto' | 'contain' | 'none';
93    /** @platform web */
94    overscrollBehaviorY?: 'auto' | 'contain' | 'none';
95    /** @platform web */
96    perspective?: string;
97    /** @platform web */
98    perspectiveOrigin?: string;
99    /** @platform web */
100    touchAction?: string;
101    /** @platform web */
102    transformOrigin?: string;
103    /** @platform web */
104    transitionDelay?: string;
105    /** @platform web */
106    transitionDuration?: string;
107    /** @platform web */
108    transitionProperty?: string;
109    /** @platform web */
110    transitionTimingFunction?: string;
111    /** @platform web */
112    userSelect?: string;
113    /** @platform web */
114    visibility?: string;
115    /** @platform web */
116    willChange?: string;
117    /** @platform web */
118    position?: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';
119  }
120
121  /**
122   * Text
123   */
124  interface TextProps {
125    className?: string;
126    style?: StyleProp<TextStyle>;
127    /** @platform web */
128    tabIndex?: number;
129    /** @platform web */
130    lang?: string;
131  }
132
133  interface TextStyle {
134    /** @platform web */
135    backdropFilter?: string;
136    /** @platform web */
137    animationDelay?: string;
138    /** @platform web */
139    animationDirection?: string;
140    /** @platform web */
141    animationDuration?: string;
142    /** @platform web */
143    animationFillMode?: string;
144    /** @platform web */
145    animationName?: string | any[];
146    /** @platform web */
147    animationIterationCount?: number | 'infinite';
148    /** @platform web */
149    animationPlayState?: string;
150    /** @platform web */
151    animationTimingFunction?: string;
152    /** @platform web */
153    backgroundAttachment?: string;
154    /** @platform web */
155    backgroundBlendMode?: string;
156    /** @platform web */
157    backgroundClip?: string;
158    /** @platform web */
159    backgroundImage?: string;
160    /** @platform web */
161    backgroundOrigin?: 'border-box' | 'content-box' | 'padding-box';
162    /** @platform web */
163    backgroundPosition?: string;
164    /** @platform web */
165    backgroundRepeat?: string;
166    /** @platform web */
167    backgroundSize?: string;
168    /** @platform web */
169    boxShadow?: string;
170    /** @platform web */
171    boxSizing?: string;
172    /** @platform web */
173    clip?: string;
174    /** @platform web */
175    cursor?: string;
176    /** @platform web */
177    filter?: string;
178    /** @platform web */
179    gridAutoColumns?: string;
180    /** @platform web */
181    gridAutoFlow?: string;
182    /** @platform web */
183    gridAutoRows?: string;
184    /** @platform web */
185    gridColumnEnd?: string;
186    /** @platform web */
187    gridColumnGap?: string;
188    /** @platform web */
189    gridColumnStart?: string;
190    /** @platform web */
191    gridRowEnd?: string;
192    /** @platform web */
193    gridRowGap?: string;
194    /** @platform web */
195    gridRowStart?: string;
196    /** @platform web */
197    gridTemplateColumns?: string;
198    /** @platform web */
199    gridTemplateRows?: string;
200    /** @platform web */
201    gridTemplateAreas?: string;
202    /** @platform web */
203    outline?: string;
204    /** @platform web */
205    outlineColor?: string;
206    /** @platform web */
207    overflowX?: string;
208    /** @platform web */
209    overflowY?: string;
210    /** @platform web */
211    overscrollBehavior?: 'auto' | 'contain' | 'none';
212    /** @platform web */
213    overscrollBehaviorX?: 'auto' | 'contain' | 'none';
214    /** @platform web */
215    overscrollBehaviorY?: 'auto' | 'contain' | 'none';
216    /** @platform web */
217    perspective?: string;
218    /** @platform web */
219    perspectiveOrigin?: string;
220    /** @platform web */
221    touchAction?: string;
222    /** @platform web */
223    transformOrigin?: string;
224    /** @platform web */
225    transitionDelay?: string;
226    /** @platform web */
227    transitionDuration?: string;
228    /** @platform web */
229    transitionProperty?: string;
230    /** @platform web */
231    transitionTimingFunction?: string;
232    /** @platform web */
233    userSelect?: string;
234    /** @platform web */
235    visibility?: string;
236    /** @platform web */
237    willChange?: string;
238    /** @platform web */
239    position?: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky';
240    /** @platform web */
241    fontFeatureSettings?: string;
242    /** @platform web */
243    textIndent?: string;
244    /** @platform web */
245    textOverflow?: string;
246    /** @platform web */
247    textRendering?: string;
248    /** @platform web */
249    unicodeBidi?: string;
250    /** @platform web */
251    wordWrap?: string;
252  }
253
254  /**
255   * Pressable
256   */
257  interface PressableStateCallbackType {
258    readonly pressed: boolean;
259    readonly hovered: boolean;
260  }
261
262  interface PressableProps {
263    children?:
264      | React.ReactNode
265      | ((state: PressableStateCallbackType) => React.ReactNode)
266      | undefined;
267    style?:
268      | RN.StyleProp<ViewStyle>
269      | ((state: PressableStateCallbackType) => RN.StyleProp<ViewStyle>);
270  }
271
272  // export const Pressable: React.ForwardRefExoticComponent<
273  //   PressableProps & React.RefAttributes<RN.View>
274  // >;
275
276  interface FlatListProps<ItemT> extends RN.VirtualizedListProps<ItemT> {
277    className?: string;
278  }
279
280  interface ImagePropsBase {
281    className?: string;
282  }
283
284  interface SwitchProps {
285    className?: string;
286  }
287
288  interface InputAccessoryViewProps {
289    className?: string;
290  }
291
292  interface TouchableWithoutFeedbackProps {
293    className?: string;
294  }
295}
296