import { ImageSourcePropType } from 'react-native'; import type { ImagePickerValue } from '../../interfaces'; export type { ImagePickerValue }; export type OnOffType = 'off' | 'on'; export type FrontBackType = 'front' | 'back'; export type IconPaths = { close?: ImageSourcePropType; send?: ImageSourcePropType; cameraChange?: ImageSourcePropType; flashOn?: ImageSourcePropType; flashOff?: ImageSourcePropType; back?: ImageSourcePropType; }; export interface CameraViewMethods { show: () => void; hide: () => void; } export interface CameraSettings { quality: number; maxWidth?: number; maxHeight?: number; enableHighQualityModeWhenRecording?: boolean; enableBufferCompression?: boolean; } export interface VideoSettings { quality: 'low' | 'medium' | 'high' | 'hd1280x720' | 'hd1920x1080'; maxDuration?: number; bitrate?: number; frameRate?: number; } export interface CameraCapabilities { hasFlash: boolean; hasTorch: boolean; canSwitchBetweenCameras: boolean; supportedVideoQualities: VideoSettings['quality'][]; maxZoom: number; minZoom: number; } export interface MediaMetadata { width?: number; height?: number; duration?: number; fileSize?: number; orientation?: number; location?: { latitude: number; longitude: number; }; } export interface EnhancedImagePickerValue extends ImagePickerValue { metadata?: MediaMetadata; thumbnail?: string; isCompressed?: boolean; } export type CameraErrorType = 'permission-denied' | 'camera-unavailable' | 'recording-failed' | 'photo-failed' | 'file-too-large' | 'unsupported-format' | 'storage-full' | 'unknown'; export interface CameraError { type: CameraErrorType; message: string; code?: string; } export interface CameraHookConfig { enableAutoPermissionRequest?: boolean; enableHapticFeedback?: boolean; enableSoundEffects?: boolean; compressionQuality?: number; thumbnailQuality?: number; maxFileSize?: number; } export interface MediaProcessingOptions { compress?: boolean; generateThumbnail?: boolean; watermark?: { text?: string; image?: ImageSourcePropType; position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'center'; }; filters?: string[]; } export type CameraAnalyticsEvent = 'camera_opened' | 'photo_taken' | 'video_started' | 'video_stopped' | 'camera_closed' | 'permission_requested' | 'permission_granted' | 'permission_denied' | 'error_occurred'; export interface CameraAnalytics { trackEvent: (event: CameraAnalyticsEvent, properties?: Record) => void; } //# sourceMappingURL=interface.d.ts.map