import * as React from 'react';
import { type FieldProps } from '@/components/atoms/forms/_shared';
type FileInputSize = 'xs' | 'sm' | 'md' | 'lg';
interface FileInputControlProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'> {
    /** Input size variant */
    size?: FileInputSize;
    /** Whether in success state (green border) */
    success?: boolean;
    /** Whether the input is disabled */
    disabled?: boolean;
    /** Controlled: current file */
    value?: File | null;
    /** Controlled: called when file changes */
    onChange?: (file: File | null) => void;
    /** Uncontrolled: default file */
    defaultValue?: File | null;
    /** Accept attribute for file filtering */
    accept?: string;
    /** Placeholder text when no file selected */
    placeholder?: string;
    /** Browse button label */
    browseLabel?: string;
    /** Browse button icon */
    browseIcon?: React.ReactNode;
    /** Delete button label */
    deleteLabel?: string;
    /** Delete button icon */
    deleteIcon?: React.ReactNode;
}
export interface FileInputProps extends FileInputControlProps, FieldProps {
}
export declare const fileInputSizeClasses: Record<FileInputSize, string>;
declare const FileInput: React.ForwardRefExoticComponent<FileInputProps & React.RefAttributes<HTMLDivElement>>;
export { FileInput };
