| 
				
			 | 
			
			
				@@ -0,0 +1,105 @@ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1
			 | 
			
			
				+/*! 
			 | 
		
	
		
			
			| 
				
			 | 
			
				2
			 | 
			
			
				+ * 
			 | 
		
	
		
			
			| 
				
			 | 
			
				3
			 | 
			
			
				+ * Copyright 2017 - acrazing 
			 | 
		
	
		
			
			| 
				
			 | 
			
				4
			 | 
			
			
				+ * 
			 | 
		
	
		
			
			| 
				
			 | 
			
				5
			 | 
			
			
				+ * @author acrazing joking.young@gmail.com 
			 | 
		
	
		
			
			| 
				
			 | 
			
				6
			 | 
			
			
				+ * @since 2017-11-11 16:03:17 
			 | 
		
	
		
			
			| 
				
			 | 
			
				7
			 | 
			
			
				+ * @version 1.0.0 
			 | 
		
	
		
			
			| 
				
			 | 
			
				8
			 | 
			
			
				+ * @desc react-native-view-shot.d.ts 
			 | 
		
	
		
			
			| 
				
			 | 
			
				9
			 | 
			
			
				+ */ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				10
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				11
			 | 
			
			
				+declare module 'react-native-view-shot' { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				12
			 | 
			
			
				+    import { Component, ReactInstance } from 'react' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				13
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				14
			 | 
			
			
				+    export interface CaptureOptions { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				15
			 | 
			
			
				+        /** 
			 | 
		
	
		
			
			| 
				
			 | 
			
				16
			 | 
			
			
				+         * (number): the width and height of the final image (resized from the View bound. don't provide it if you want 
			 | 
		
	
		
			
			| 
				
			 | 
			
				17
			 | 
			
			
				+         * the original pixel size). 
			 | 
		
	
		
			
			| 
				
			 | 
			
				18
			 | 
			
			
				+         */ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				19
			 | 
			
			
				+        width?: number; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				20
			 | 
			
			
				+        /** 
			 | 
		
	
		
			
			| 
				
			 | 
			
				21
			 | 
			
			
				+         * @see {CaptureOptions#width} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				22
			 | 
			
			
				+         */ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				23
			 | 
			
			
				+        height?: number; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				24
			 | 
			
			
				+        /** 
			 | 
		
	
		
			
			| 
				
			 | 
			
				25
			 | 
			
			
				+         * either png or jpg or webm (Android). Defaults to png. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				26
			 | 
			
			
				+         */ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				27
			 | 
			
			
				+        format?: 'jpg' | 'png' | 'webm'; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				28
			 | 
			
			
				+        /** 
			 | 
		
	
		
			
			| 
				
			 | 
			
				29
			 | 
			
			
				+         * the quality. 0.0 - 1.0 (default). (only available on lossy formats like jpg) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				30
			 | 
			
			
				+         */ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				31
			 | 
			
			
				+        quality?: number; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				32
			 | 
			
			
				+        /** 
			 | 
		
	
		
			
			| 
				
			 | 
			
				33
			 | 
			
			
				+         * the method you want to use to save the snapshot, one of: 
			 | 
		
	
		
			
			| 
				
			 | 
			
				34
			 | 
			
			
				+         " - tmpfile" (default): save to a temporary file (that will only exist for as long as the app is running). 
			 | 
		
	
		
			
			| 
				
			 | 
			
				35
			 | 
			
			
				+         " - base64": encode as base64 and returns the raw string. Use only with small images as this may result of 
			 | 
		
	
		
			
			| 
				
			 | 
			
				36
			 | 
			
			
				+         *   lags (the string is sent over the bridge). N.B. This is not a data uri, use data-uri instead. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				37
			 | 
			
			
				+         " - data-uri": same as base64 but also includes the Data URI scheme header. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				38
			 | 
			
			
				+         */ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				39
			 | 
			
			
				+        result?: 'tmpfile' | 'base64' | 'data-uri'; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				40
			 | 
			
			
				+        /** 
			 | 
		
	
		
			
			| 
				
			 | 
			
				41
			 | 
			
			
				+         * if true and when view is a ScrollView, the "content container" height will be evaluated instead of the 
			 | 
		
	
		
			
			| 
				
			 | 
			
				42
			 | 
			
			
				+         * container height. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				43
			 | 
			
			
				+         */ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				44
			 | 
			
			
				+        snapshotContentContainer?: boolean; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				45
			 | 
			
			
				+    } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				46
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				47
			 | 
			
			
				+    export interface ViewShotProperties { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				48
			 | 
			
			
				+        options?: CaptureOptions; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				49
			 | 
			
			
				+        /** 
			 | 
		
	
		
			
			| 
				
			 | 
			
				50
			 | 
			
			
				+         * - if not defined (default). the capture is not automatic and you need to use the ref and call capture() 
			 | 
		
	
		
			
			| 
				
			 | 
			
				51
			 | 
			
			
				+         *   yourself. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				52
			 | 
			
			
				+         * - "mount". Capture the view once at mount. (It is important to understand image loading won't be waited, in 
			 | 
		
	
		
			
			| 
				
			 | 
			
				53
			 | 
			
			
				+         *   such case you want to use "none" with viewShotRef.capture() after Image#onLoad.) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				54
			 | 
			
			
				+         * - "continuous" EXPERIMENTAL, this will capture A LOT of images continuously. For very specific use-cases. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				55
			 | 
			
			
				+         * - "update" EXPERIMENTAL, this will capture images each time React redraw (on did update). For very specific 
			 | 
		
	
		
			
			| 
				
			 | 
			
				56
			 | 
			
			
				+         *   use-cases. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				57
			 | 
			
			
				+         */ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				58
			 | 
			
			
				+        captureMode?: 'mount' | 'continuous' | 'update'; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				59
			 | 
			
			
				+        /** 
			 | 
		
	
		
			
			| 
				
			 | 
			
				60
			 | 
			
			
				+         * when a captureMode is defined, this callback will be called with the capture result. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				61
			 | 
			
			
				+         * @param {string} uri 
			 | 
		
	
		
			
			| 
				
			 | 
			
				62
			 | 
			
			
				+         */ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				63
			 | 
			
			
				+        onCapture?(uri: string): void; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				64
			 | 
			
			
				+        /** 
			 | 
		
	
		
			
			| 
				
			 | 
			
				65
			 | 
			
			
				+         * when a captureMode is defined, this callback will be called when a capture fails. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				66
			 | 
			
			
				+         * @param {Error} error 
			 | 
		
	
		
			
			| 
				
			 | 
			
				67
			 | 
			
			
				+         */ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				68
			 | 
			
			
				+        onCaptureFailure?(error: Error): void; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				69
			 | 
			
			
				+    } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				70
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				71
			 | 
			
			
				+    export default class ViewShot extends Component<ViewShotProperties> { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				72
			 | 
			
			
				+    } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				73
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				74
			 | 
			
			
				+    /** 
			 | 
		
	
		
			
			| 
				
			 | 
			
				75
			 | 
			
			
				+     * lower level imperative API 
			 | 
		
	
		
			
			| 
				
			 | 
			
				76
			 | 
			
			
				+     * 
			 | 
		
	
		
			
			| 
				
			 | 
			
				77
			 | 
			
			
				+     * @param {React.ReactInstance} viewRef 
			 | 
		
	
		
			
			| 
				
			 | 
			
				78
			 | 
			
			
				+     * @param {"react-native-view-shot".CaptureOptions} options 
			 | 
		
	
		
			
			| 
				
			 | 
			
				79
			 | 
			
			
				+     * @return {Promise<string>} Returns a Promise of the image URI. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				80
			 | 
			
			
				+     */ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				81
			 | 
			
			
				+    export function captureRef(viewRef: ReactInstance, options?: CaptureOptions): Promise<string> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				82
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				83
			 | 
			
			
				+    /** 
			 | 
		
	
		
			
			| 
				
			 | 
			
				84
			 | 
			
			
				+     * This method release a previously captured uri. For tmpfile it will clean them out, for other result types it 
			 | 
		
	
		
			
			| 
				
			 | 
			
				85
			 | 
			
			
				+     * just won't do anything. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				86
			 | 
			
			
				+     * 
			 | 
		
	
		
			
			| 
				
			 | 
			
				87
			 | 
			
			
				+     * NB: the tmpfile captures are automatically cleaned out after the app closes, so you might not have to worry 
			 | 
		
	
		
			
			| 
				
			 | 
			
				88
			 | 
			
			
				+     *  about this unless advanced usecases. The ViewShot component will use it each time you capture more than once 
			 | 
		
	
		
			
			| 
				
			 | 
			
				89
			 | 
			
			
				+     * (useful for continuous capture to not leak files). 
			 | 
		
	
		
			
			| 
				
			 | 
			
				90
			 | 
			
			
				+     * @param {string} uri 
			 | 
		
	
		
			
			| 
				
			 | 
			
				91
			 | 
			
			
				+     */ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				92
			 | 
			
			
				+    export function releaseCapture(uri: string): void 
			 | 
		
	
		
			
			| 
				
			 | 
			
				93
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				94
			 | 
			
			
				+    /** 
			 | 
		
	
		
			
			| 
				
			 | 
			
				95
			 | 
			
			
				+     * This method will capture the contents of the currently displayed screen as a native hardware screenshot. It does 
			 | 
		
	
		
			
			| 
				
			 | 
			
				96
			 | 
			
			
				+     * not require a ref input, as it does not work at the view level. This means that ScrollViews will not be captured 
			 | 
		
	
		
			
			| 
				
			 | 
			
				97
			 | 
			
			
				+     * in their entirety - only the portions currently visible to the user. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				98
			 | 
			
			
				+     * 
			 | 
		
	
		
			
			| 
				
			 | 
			
				99
			 | 
			
			
				+     * Returns a Promise of the image URI. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				100
			 | 
			
			
				+     * 
			 | 
		
	
		
			
			| 
				
			 | 
			
				101
			 | 
			
			
				+     * @param {"react-native-view-shot".CaptureOptions} options 
			 | 
		
	
		
			
			| 
				
			 | 
			
				102
			 | 
			
			
				+     * @return {Promise<string>} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				103
			 | 
			
			
				+     */ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				104
			 | 
			
			
				+    export function captureScreen(options?: CaptureOptions): Promise<string> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				105
			 | 
			
			
				+} 
			 |