import React from 'react'; export type UpfilesClientOptions = { baseUrl?: string; presignPath?: string; presignUrl?: string; headers?: Record; withCredentials?: boolean; apiKey?: string; apiKeyHeader?: 'authorization' | 'x-api-key' | 'x-up-api-key'; getToken?: () => string | null | undefined; projectName?: string; projectId?: string; completionPath?: string; callCompletionEndpoint?: boolean; }; type Thumbnail = { id: string; key: string; url: string; size: number; sizeType?: string; }; export type SelectedImage = { url: string; key: string; originalName: string; size: number; contentType: string; thumbnails?: Thumbnail[]; selectedThumbnail?: Thumbnail; }; export interface ImagePickerProps { /** Current image URL (for preview) */ value?: string; /** Callback when image is selected/uploaded */ onChange?: (url: string, image?: SelectedImage) => void; /** Callback when an error occurs */ onError?: (error: Error) => void; /** Upfiles client configuration */ upfilesConfig?: UpfilesClientOptions; /** Project ID for organizing uploads */ projectId?: string; /** Folder path for organizing uploads */ folderPath?: string; /** Maximum file size in bytes (default: 10MB) */ maxFileSize?: number; /** Accepted file types (default: image/*) */ accept?: string; /** Whether the picker is disabled */ disabled?: boolean; /** Custom placeholder text */ placeholder?: string; /** Size of the preview (default: 150) */ size?: number; /** Shape of the preview */ shape?: 'square' | 'circle' | 'rounded'; /** Label text */ label?: string; /** Show remove button */ showRemove?: boolean; /** Custom className for the container */ className?: string; /** Render prop for custom ImageManager integration */ renderImageManager?: (props: { open: boolean; onOpenChange: (open: boolean) => void; onSelect: (image: SelectedImage) => void; clientOptions: UpfilesClientOptions; }) => React.ReactNode; } /** * ImagePicker - A versatile image picker component for organization assets * * Supports direct upload via @thetechfossil/upfiles or integration with ImageManager. * * @example Basic usage with direct upload: * ```tsx * * ``` * * @example With ImageManager from @thetechfossil/upfiles: * ```tsx * import { ImageManager } from '@thetechfossil/upfiles'; * * ( * * )} * /> * ``` */ export declare const ImagePicker: React.FC; export default ImagePicker;