import type { TurboModule } from 'react-native/Libraries/TurboModule/RCTExport'; export interface ImagePickerResponse { customButton: string; didCancel: boolean; error: string; data: string; uri: string; origURL?: string; isVertical: boolean; width: number; height: number; fileSize: number; type?: string; fileName?: string; path?: string; latitude?: number; longitude?: number; timestamp?: string; originalRotation?: number; } export interface ImagePickerCustomButtonOptions { name?: string; title?: string; } export interface ImagePickerOptions { title?: string; cancelButtonTitle?: string; takePhotoButtonTitle?: string; chooseFromLibraryButtonTitle?: string; chooseWhichLibraryTitle?: string; customButtons?: ImagePickerCustomButtonOptions[]; cameraType?: 'front' | 'back'; mediaType?: 'photo' | 'video' | 'mixed'; maxWidth?: number; maxHeight?: number; quality?: number; videoQuality?: 'low' | 'medium' | 'high'; durationLimit?: number; rotation?: number; allowsEditing?: boolean; noData?: boolean; storageOptions?: ImagePickerStorageOptions; permissionDenied?: ImagePickerPermissionDeniedOptions; tintColor?: number | string; } export interface ImagePickerStorageOptions { skipBackup?: boolean; path?: string; cameraRoll?: boolean; waitUntilSaved?: boolean; } export interface ImagePickerPermissionDeniedOptions { title: string; text: string; reTryTitle: string; okTitle: string; } export interface Spec extends TurboModule { launchCamera(options: ImagePickerOptions, callback: (response: ImagePickerResponse) => void): void; launchImageLibrary(options: ImagePickerOptions, callback: (response: ImagePickerResponse) => void): void; showImagePicker: (options: ImagePickerOptions, callback: (response: ImagePickerResponse) => void) => void; } declare const ImagePickerManager: Spec | null; export default ImagePickerManager;