import React from 'react';
import type { IUserDetailsImage } from '../../../context';
interface IUploadImageResponse {
    thumbnailURL: string;
    originalURL: string;
}
type TSetUserImage = (value: React.SetStateAction<IUserDetailsImage>) => void;
interface IUploadImageProps {
    fileObject: File;
    userId: string;
}
interface Props {
    /** Additional classes */
    className?: string;
    /** User ID */
    userId: string;
    /** User name */
    userName: string;
    /** Image data */
    src?: IUserDetailsImage;
    /** Function to upload the image */
    uploadImage: ({ fileObject, userId, }: IUploadImageProps) => Promise<IUploadImageResponse>;
    /** Button props */
    button?: {
        /** Text for the button */
        text?: {
            /** Text to upload an image for the first time */
            upload?: string;
            /** Text to change the image */
            change?: string;
            /** Text to show while the image is being uploaded */
            uploading?: string;
        };
    };
    /** Callback function to update state in the parent file */
    callback: TSetUserImage;
}
declare function ProfileImageChange({ className, userId, userName, src, uploadImage, button, callback, }: Props): import("react/jsx-runtime").JSX.Element;
export default ProfileImageChange;
