/**
 * This code was generated by "react-native codegen-lib-harmony"
 */

export namespace ImageCropPicker {
  export const NAME = 'ImageCropPicker' as const

  export type CropperOptions = {multiple?: boolean, minFiles?: number, maxFiles?: number, waitAnimationEnd?: boolean, smartAlbums?: unknown[], useFrontCamera?: boolean, loadingLabelText?: string, showsSelectedCount?: boolean, sortOrder?: string, hideBottomControls?: boolean, writeTempFile?: boolean, mediaType: string, width?: number, height?: number, includeBase64?: boolean, includeExif?: boolean, forceJpg?: boolean, cropping?: boolean, avoidEmptySpaceAroundImage?: boolean, cropperActiveWidgetColor?: string, cropperStatusBarColor?: string, cropperToolbarColor?: string, cropperToolbarWidgetColor?: string, cropperToolbarTitle?: string, freeStyleCropEnabled?: boolean, cropperTintColor?: string, cropperCircleOverlay?: boolean, cropperCancelText?: string, cropperCancelColor?: string, cropperChooseText?: string, cropperChooseColor?: string, cropperRotateButtonHidden?: boolean, showCropGuidelines?: boolean, showCropFrame?: boolean, enableRotationGesture?: boolean, disableCropperColorSetters?: boolean, compressImageMaxWidth?: number, compressImageMaxHeight?: number, compressImageQuality?: number, path: string}
  
  export type Exif = {}
  
  export type ImageVideoCommon = {path: string, size: number, width: number, height: number, mime: string, exif?: Exif, localIdentifier?: string, sourceURL?: string, filename?: string, creationDate?: string, modificationDate?: string}
  
  export type CropRect = {x: number, y: number, width: number, height: number}
  
  export type Image = {path: string, size: number, width: number, height: number, mime: string, exif?: Exif, localIdentifier?: string, sourceURL?: string, filename?: string, creationDate?: string, modificationDate?: string, data?: null | string, cropRect?: null | CropRect}
  
  export interface Spec {
    openPicker(options: Object): Promise<Object>;
  
    openCamera(options: Object): Promise<Object>;
  
    openCropper(options: CropperOptions): Promise<Image>;
  
    clean(): Promise<void>;
  
    cleanSingle(path: string): Promise<void>;
  
  }
}
