import { default as React } from 'react';
/** Tracking event data for file input interactions */
export interface FileInputTrackingData {
/** Action performed */
action: 'select' | 'drop' | 'remove';
/** Optional custom label for tracking */
trackingLabel?: string;
/** Optional component context */
componentName?: string;
}
export interface FileInputProps {
/** Callback when files are selected */
onChange: (files: File[]) => void;
/** Accept file types (e.g., "image/*", ".pdf,.doc") */
accept?: string;
/** Allow multiple files */
multiple?: boolean;
/** Maximum file size in bytes */
maxSize?: number;
/** Maximum number of files */
maxFiles?: number;
/** Disabled state */
disabled?: boolean;
/** Show drag-and-drop area */
showDropZone?: boolean;
/** Show file list */
showFileList?: boolean;
/** Current files (for controlled component) */
files?: File[];
/** Callback to remove a file */
onRemove?: (index: number) => void;
/** Additional className */
className?: string;
/** Button text */
buttonText?: string;
/** Drop zone text */
dropZoneText?: string;
/** Optional callback for tracking file input interactions */
onTrack?: (data: FileInputTrackingData) => void;
/** Custom label for tracking */
trackingLabel?: string;
/** Component name for tracking context */
componentName?: string;
}
/**
* FileInput Component
*
* File input with drag-and-drop support, file preview, and validation.
* Supports single or multiple files with size and type restrictions.
*
* @example
* ```tsx
*
* ```
*
* @example
* ```tsx
*
* ```
*/
export declare const FileInput: React.FC;
//# sourceMappingURL=file-input.d.ts.map