diff --git a/package.json b/package.json index e281f1f..f6cc0f2 100755 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "1.0.0", "description": "React Native Image Editing native modules for iOS & Android", "main": "lib/ImageEditor.js", + "typings": "typings/index.d.ts", "author": "Dawid Urbaniak ", "contributors": [], "homepage": "https://github.com/react-native-community/react-native-image-editor#readme", diff --git a/typings/index.d.ts b/typings/index.d.ts new file mode 100644 index 0000000..9659073 --- /dev/null +++ b/typings/index.d.ts @@ -0,0 +1,59 @@ +type $Maybe = T | null | undefined; + +export type ImageCropData = { + /** + * The top-left corner of the cropped image, specified in the original + * image's coordinate space. + */ + offset: { + x: number, + y: number, + }, + /** + * The size (dimensions) of the cropped image, specified in the original + * image's coordinate space. + */ + size: { + width: number, + height: number, + }, + /** + * (Optional) size to scale the cropped image to. + */ + displaySize?: $Maybe<{ + width: number, + height: number, + }>, + /** + * (Optional) the resizing mode to use when scaling the image. If the + * `displaySize` param is not specified, this has no effect. + */ + resizeMode?: $Maybe<{ + contain: string, + cover: string, + stretch: string, + }>, +}; + +declare class ImageEditor { + /** + * Crop the image specified by the URI param. If URI points to a remote + * image, it will be downloaded automatically. If the image cannot be + * loaded/downloaded, the failure callback will be called. On Android, a + * downloaded image may be cached in external storage, a publicly accessible + * location, if it has more available space than internal storage. + * + * If the cropping process is successful, the resultant cropped image + * will be stored in the ImageStore, and the URI returned in the success + * callback will point to the image in the store. Remember to delete the + * cropped image from the ImageStore when you are done with it. + */ + static cropImage: ( + uri: string, + cropData: ImageCropData, + success: (uri: string) => void, + failure: (error: Object) => void, + ) => void +} + +export default ImageEditor \ No newline at end of file