/// <reference types="react" />
import { MessageThreadStrings, UpdateMessageCallback } from '../../MessageThread';
import { ChatMessage, ComponentSlotStyle, OnRenderAvatarCallback } from '../../../types';
import { AttachmentMenuAction } from '../../../types/Attachment';
import { AttachmentMetadata } from "../../../../../acs-ui-common/src";
import { InlineImageOptions } from '../ChatMessageContent';
/**
 * Props for the ChatMyMessageComponent component.
 */
export type ChatMyMessageComponentProps = {
    message: ChatMessage;
    userId: string;
    messageContainerStyle?: ComponentSlotStyle;
    showDate?: boolean;
    disableEditing?: boolean;
    onUpdateMessage?: UpdateMessageCallback;
    onCancelEditMessage?: (messageId: string) => void;
    /**
     * Callback to delete a message. Also called before resending a message that failed to send.
     * @param messageId ID of the message to delete
     */
    onDeleteMessage?: (messageId: string) => Promise<void>;
    /**
     * Callback to send a message
     * @param content The message content to send
     */
    onSendMessage?: (content: string) => Promise<void>;
    strings: MessageThreadStrings;
    messageStatus?: string;
    /**
     * Optional text to display when the message status is 'failed'.
     */
    failureReason?: string;
    /**
     * Whether the status indicator for each message is displayed or not.
     */
    showMessageStatus?: boolean;
    /**
     * Whether to overlap avatar and message when the view is width constrained.
     */
    shouldOverlapAvatarAndMessage: boolean;
    remoteParticipantsCount?: number;
    onActionButtonClick: (message: ChatMessage, setMessageReadBy: (readBy: {
        id: string;
        displayName: string;
    }[]) => void) => void;
    /**
     * Optional callback to override render of the avatar.
     *
     * @param userId - user Id
     */
    onRenderAvatar?: OnRenderAvatarCallback;
    /**
     * Optional callback called when an inline image is clicked.
     * @beta
     */
    inlineImageOptions?: InlineImageOptions;
    /**
     * Optional callback to render message attachments in the message component.
     * @beta
     */
    onRenderAttachmentDownloads?: (message: ChatMessage) => JSX.Element;
    /**
     * Optional callback to define custom actions for attachments.
     * @beta
     */
    actionsForAttachment?: (attachment: AttachmentMetadata, message?: ChatMessage) => AttachmentMenuAction[];
};
/**
 * @private
 */
export declare const ChatMyMessageComponent: (props: ChatMyMessageComponentProps) => JSX.Element;
//# sourceMappingURL=ChatMyMessageComponent.d.ts.map