/**
 * Traducciones para el componente UploadFile
 */
export interface UploadFileTranslations {
    /** Texto principal del área de carga */
    uploadText?: string;
    /** Texto secundario o de ayuda */
    subText?: string;
    /** Texto cuando se arrastra un archivo */
    dragText?: string;
    /** Mensaje de error por múltiples archivos */
    multipleFilesError?: string;
    /** Mensaje de error por límite de archivos excedido */
    maxFilesError?: string;
    /** Mensaje de error por tipo de archivo no válido */
    invalidFileTypeError?: string;
    /** Mensaje de error por tamaño de archivo excedido */
    maxFileSizeError?: string;
    /** Etiqueta ARIA para el botón de remover archivo */
    removeFileAriaLabel?: string;
    /** Etiqueta ARIA para el área de carga */
    uploadAreaAriaLabel?: string;
    /** Título del modal de recorte */
    cropModalTitle?: string;
    /** Texto del botón de guardar recorte */
    cropSaveButton?: string;
    /** Texto del botón de cancelar recorte */
    cropCancelButton?: string;
    /** Etiqueta para el control de zoom */
    cropZoomLabel?: string;
    /** Instrucciones de recorte */
    cropInstructions?: string;
    /** Etiqueta para el color de fondo */
    cropBackgroundLabel?: string;
    /** Opciones de color de fondo */
    cropBackgroundWhite?: string;
    cropBackgroundBlack?: string;
    cropBackgroundTransparent?: string;
}
/**
 * Configuración para recorte de imagen
 */
export interface CropConfig {
    /** Ancho objetivo de la imagen recortada */
    targetWidth: number;
    /** Alto objetivo de la imagen recortada */
    targetHeight: number;
    /** Texto del botón de guardar recorte */
    textButton?: string;
    /** Color del botón de guardar recorte */
    colorButton?: string;
}
/**
 * Tamaños predefinidos para el componente UploadFile
 */
export type UploadFileSize = "micro" | "small" | "medium" | "large";
/**
 * Props del componente UploadFile
 */
export interface UploadFileProps {
    /** Texto principal del área de carga */
    text?: string;
    /** Color del texto principal */
    textColor?: string;
    /** Texto secundario o de ayuda */
    subText?: string;
    /** Color del borde */
    borderColor?: string;
    /** Color del icono */
    iconColor?: string;
    /** Color de fondo */
    backgroundColor?: string;
    /** Tamaño predefinido del componente (micro, small, medium, large) */
    size?: UploadFileSize;
    /** Ancho del componente (se usa si size no está definido) */
    width?: string;
    /** Alto del componente (se usa si size no está definido) */
    height?: string;
    /** Permitir múltiples archivos */
    multiple?: boolean;
    /** Número máximo de archivos */
    maxFiles?: number;
    /** Tamaño máximo de archivo en bytes */
    maxFileSize?: number;
    /** Tipos de archivo aceptados */
    acceptedFiles?: string | string[];
    /** Icono a mostrar */
    icon?: string;
    /** Función callback al subir archivos */
    onUpload: (files: File[]) => void;
    /** Función callback para manejar errores de validación */
    onError?: (message: string) => void;
    /** Estado de error */
    error?: boolean;
    /** Estado de éxito */
    success?: boolean;
    /** Estado deshabilitado */
    disabled?: boolean;
    /** Texto del mensaje de error */
    errorText?: string;
    /** Configuración para recorte de imagen */
    cropConfig?: CropConfig;
    /** Archivo de imagen preseleccionado */
    image?: File;
    /** Clases CSS adicionales */
    className?: string;
    /** Traducciones para i18n */
    translations?: UploadFileTranslations;
}
//# sourceMappingURL=UploadFile.types.d.ts.map