import { CSSProperties } from 'react';
import { Sizes } from '@m4l/styles';
import { SxProps } from '@mui/material';
import { Theme } from '@mui/material/styles';
import { DropzoneOptions } from 'react-dropzone';
import { CustomFile } from '../../../types';
export interface UploadImageProps extends DropzoneOptions {
    /**
     * When true, shows error styling on the dropzone.
     */
    error?: boolean;
    /**
     * Current file, URL string, or null when empty.
     */
    file: CustomFile | string | null;
    /**
     * MUI `sx` prop for the component.
     */
    sx?: SxProps<Theme>;
    /**
     * Visual size (small | medium).
     */
    size?: Extract<Sizes, 'small' | 'medium'>;
    /**
     * Called when the user removes the preview.
     */
    onRemove: () => void;
    /**
     * Drag-accept state (optional override).
     */
    isDragAccept?: boolean;
    /**
     * dataTestId
     */
    dataTestId?: string;
    /**
     * CSS `object-fit` for the preview image (`img` in preview state).
     */
    imageFit?: CSSProperties['objectFit'];
    /**
     * CSS `height` for the preview image (`img` in preview state). Use a number for pixels (e.g. `200` -> `200px`) or a CSS string (e.g. `'40vh'`).
     */
    height?: number | string;
    /**
     * CSS `max-height` for the preview image (`img` in preview state). Use a number for pixels (e.g. `200` → `200px`) or a CSS string (e.g. `'50vh'`).
     */
    maxHeight?: number | string;
}
//# sourceMappingURL=types.d.ts.map