import { BoxProps } from '@mui/material/Box';
import { IBasicComment, ICommentAttachment, ICommentAuthor, ICommentCard, ICommentRichText } from '../../CommentCard';
export type ICommentItem = Omit<ICommentCard, 'replies'> & {
    replies?: ReadonlyArray<IBasicComment>;
};
export type ICommentThreadItem = Omit<BoxProps, 'children' | 'onClick'> & ICommentRichText & {
    /**
     * Author details for the currently logged in user for displaying next to the reply text field.
     */
    currentUser: ICommentAuthor;
    /**
     *  Wether to show expanded reply text field
     */
    expanded: boolean;
    /**
     * Data source for the comment item
     */
    comment: ICommentItem;
    /**
     * Callback function triggered when user added a reply to a comment
     * @param commentId the comment id that user replied
     * @param message reply message
     * @param attachments reply attachments
     * @param tags reply tags
     * @param metadata reply metadata
     * @returns Void
     */
    onReplyAdd: (commentId: string, message: string, attachments?: ICommentAttachment[], tags?: string[], metadata?: Record<string, any>) => void;
    /**
     * Callback function triggered when the user is editing a reply to a comment
     * @param commentId the comment id that user replied
     * @param message reply message
     * @param attachments reply attachments
     * @param tags reply tags
     * @param metadata reply metadata
     * @returns Void
     */
    onReplyEditing?: (commentId: string, message: string, attachments?: ICommentAttachment[], tags?: string[], metadata?: Record<string, any>) => void;
    /**
     * Callback function triggered when user clicked the comment item
     * @param comment current comment object
     * @param reply current reply object
     * @returns Void
     */
    onClick: (comment: ICommentItem, reply?: IBasicComment) => void;
};
export declare const CommentThreadItem: import("react").ForwardRefExoticComponent<Omit<ICommentThreadItem, "ref"> & import("react").RefAttributes<unknown>>;
