| 
				
			 | 
			
			
				@@ -3,6 +3,10 @@ import React, { Component } from "react"; 
			 | 
		
	
		
			
			| 
				3
			 | 
			
				3
			 | 
			
			
				 import { View, NativeModules, Platform, findNodeHandle } from "react-native"; 
			 | 
		
	
		
			
			| 
				4
			 | 
			
				4
			 | 
			
			
				 const { RNViewShot } = NativeModules; 
			 | 
		
	
		
			
			| 
				5
			 | 
			
				5
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				6
			 | 
			
			
				+import type { Element, ElementRef } from 'react'; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				7
			 | 
			
			
				+import type { ViewStyleProp } from 'StyleSheet'; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				8
			 | 
			
			
				+import type { LayoutEvent } from 'CoreEventTypes'; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				9
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				6
			 | 
			
				10
			 | 
			
			
				 const neverEndingPromise = new Promise(() => {}); 
			 | 
		
	
		
			
			| 
				7
			 | 
			
				11
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				8
			 | 
			
				12
			 | 
			
			
				 type Options = { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -85,7 +89,7 @@ function validateOptions( 
			 | 
		
	
		
			
			| 
				85
			 | 
			
				89
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				86
			 | 
			
				90
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				87
			 | 
			
				91
			 | 
			
			
				 export function captureRef( 
			 | 
		
	
		
			
			| 
				88
			 | 
			
				
			 | 
			
			
				-  view: number | ReactElement<*>, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				92
			 | 
			
			
				+  view: number | ?View, 
			 | 
		
	
		
			
			| 
				89
			 | 
			
				93
			 | 
			
			
				   optionsObject?: Object 
			 | 
		
	
		
			
			| 
				90
			 | 
			
				94
			 | 
			
			
				 ): Promise<string> { 
			 | 
		
	
		
			
			| 
				91
			 | 
			
				95
			 | 
			
			
				   if (typeof view !== "number") { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -132,10 +136,11 @@ export function captureScreen( 
			 | 
		
	
		
			
			| 
				132
			 | 
			
				136
			 | 
			
			
				 type Props = { 
			 | 
		
	
		
			
			| 
				133
			 | 
			
				137
			 | 
			
			
				   options?: Object, 
			 | 
		
	
		
			
			| 
				134
			 | 
			
				138
			 | 
			
			
				   captureMode?: "mount" | "continuous" | "update", 
			 | 
		
	
		
			
			| 
				135
			 | 
			
				
			 | 
			
			
				-  children: React.Element<*>, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				139
			 | 
			
			
				+  children: Element<*>, 
			 | 
		
	
		
			
			| 
				136
			 | 
			
				140
			 | 
			
			
				   onLayout?: (e: *) => void, 
			 | 
		
	
		
			
			| 
				137
			 | 
			
				141
			 | 
			
			
				   onCapture?: (uri: string) => void, 
			 | 
		
	
		
			
			| 
				138
			 | 
			
				
			 | 
			
			
				-  onCaptureFailure?: (e: Error) => void 
			 | 
		
	
		
			
			| 
				
			 | 
			
				142
			 | 
			
			
				+  onCaptureFailure?: (e: Error) => void, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				143
			 | 
			
			
				+  style?: ViewStyleProp 
			 | 
		
	
		
			
			| 
				139
			 | 
			
				144
			 | 
			
			
				 }; 
			 | 
		
	
		
			
			| 
				140
			 | 
			
				145
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				141
			 | 
			
				146
			 | 
			
			
				 function checkCompatibleProps(props: Props) { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -160,17 +165,16 @@ function checkCompatibleProps(props: Props) { 
			 | 
		
	
		
			
			| 
				160
			 | 
			
				165
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				161
			 | 
			
				166
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				162
			 | 
			
				167
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				163
			 | 
			
				
			 | 
			
			
				-export default class ViewShot extends Component { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				168
			 | 
			
			
				+export default class ViewShot extends Component<Props> { 
			 | 
		
	
		
			
			| 
				164
			 | 
			
				169
			 | 
			
			
				   static captureRef = captureRef; 
			 | 
		
	
		
			
			| 
				165
			 | 
			
				170
			 | 
			
			
				   static releaseCapture = releaseCapture; 
			 | 
		
	
		
			
			| 
				166
			 | 
			
				
			 | 
			
			
				-  props: Props; 
			 | 
		
	
		
			
			| 
				167
			 | 
			
				171
			 | 
			
			
				   root: ?View; 
			 | 
		
	
		
			
			| 
				168
			 | 
			
				172
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				169
			 | 
			
				173
			 | 
			
			
				   _raf: *; 
			 | 
		
	
		
			
			| 
				170
			 | 
			
				174
			 | 
			
			
				   lastCapturedURI: ?string; 
			 | 
		
	
		
			
			| 
				171
			 | 
			
				175
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				172
			 | 
			
				176
			 | 
			
			
				   resolveFirstLayout: (layout: Object) => void; 
			 | 
		
	
		
			
			| 
				173
			 | 
			
				
			 | 
			
			
				-  firstLayoutPromise = new Promise(resolve => { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				177
			 | 
			
			
				+  firstLayoutPromise = new Promise<void>(resolve => { 
			 | 
		
	
		
			
			| 
				174
			 | 
			
				178
			 | 
			
			
				     this.resolveFirstLayout = resolve; 
			 | 
		
	
		
			
			| 
				175
			 | 
			
				179
			 | 
			
			
				   }); 
			 | 
		
	
		
			
			| 
				176
			 | 
			
				180
			 | 
			
			
				  
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -223,11 +227,11 @@ export default class ViewShot extends Component { 
			 | 
		
	
		
			
			| 
				223
			 | 
			
				227
			 | 
			
			
				     } 
			 | 
		
	
		
			
			| 
				224
			 | 
			
				228
			 | 
			
			
				   }; 
			 | 
		
	
		
			
			| 
				225
			 | 
			
				229
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				226
			 | 
			
				
			 | 
			
			
				-  onRef = (ref: View) => { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				230
			 | 
			
			
				+  onRef = (ref: ElementRef<*>) => { 
			 | 
		
	
		
			
			| 
				227
			 | 
			
				231
			 | 
			
			
				     this.root = ref; 
			 | 
		
	
		
			
			| 
				228
			 | 
			
				232
			 | 
			
			
				   }; 
			 | 
		
	
		
			
			| 
				229
			 | 
			
				233
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				230
			 | 
			
				
			 | 
			
			
				-  onLayout = (e: { nativeEvent: { layout: Object } }) => { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				234
			 | 
			
			
				+  onLayout = (e: LayoutEvent) => { 
			 | 
		
	
		
			
			| 
				231
			 | 
			
				235
			 | 
			
			
				     const { onLayout } = this.props; 
			 | 
		
	
		
			
			| 
				232
			 | 
			
				236
			 | 
			
			
				     this.resolveFirstLayout(e.nativeEvent.layout); 
			 | 
		
	
		
			
			| 
				233
			 | 
			
				237
			 | 
			
			
				     if (onLayout) onLayout(e); 
			 |