export interface UploaderImage { id?: string; src: string; alt?: string; } export type UploaderVariant = 'default' | 'coverSelect'; export type UploaderImageFit = 'cover' | 'contain'; export interface UploaderProps { className?: string; title?: string; description?: string; images?: (UploaderImage | null)[]; maxCount?: number; /** Grid satırındaki kolon sayısı (default: 4). maxCount'tan bağımsızdır. */ columnCount?: number; uploadLabel?: string; coverBadgeText?: string; variant?: UploaderVariant; /** Seçili slot index'leri (birden fazla olabilir) */ selectedIndexes?: number[]; /** @deprecated `selectedIndexes` kullan. Tek seçim için `[index]` geç. */ selectedIndex?: number; showCoverBadge?: boolean; accept?: string; disabled?: boolean; /** Slot görseli padding'i (`1.5rem`, `1rem`, `1.5rem 1rem` vb.) */ imagePadding?: string; /** Slot görseli object-fit değeri */ imageFit?: UploaderImageFit; onUpload?: (index: number, file: File) => void; onRemove?: (index: number) => void; /** Slot seçildiğinde çağrılır; parent selectedIndexes'i yönetir */ onSelect?: (index: number) => void; } export declare const UploaderDefault: { images: UploaderImage[]; maxCount: number; columnCount: number; uploadLabel: string; coverBadgeText: string; variant: UploaderVariant; selectedIndexes: number[]; selectedIndex: number; showCoverBadge: boolean; accept: string; disabled: boolean; imagePadding: string; imageFit: UploaderImageFit; };