import React__default, { FC, HTMLAttributes } from 'react';

declare enum Feedback {
    Helpful = "helpful",
    NotHelpful = "not_helpful",
    Other = "other"
}

/**
 *
 */
declare enum MessageRole {
    System = "system",
    User = "user"
}
/**
 *
 */
declare enum MessageStatus {
    /**
     * Pending status for the message
     */
    Pending = "pending",
    /**
     * complete the message
     */
    Complete = "complete"
}
/**
 *
 */
interface Message {
    /**
     * id of the message
     */
    id: string;
    /**
     * role of the message who had sent it
     */
    role: MessageRole;
    /**
     * list of sentences in the message
     */
    messages: string[];
    /**
     * feedback given to the message
     */
    feedback?: Feedback;
    /**
     *time
     */
    time: Date;
    /**
     *
     */
    status: MessageStatus;
}

/**
 * Props for the Conversation component.
 * @interface ConversationProps
 * @extends HTMLAttributes<HTMLDivElement>
 */
interface ConversationProps extends HTMLAttributes<HTMLDivElement> {
    /**
     * A React component used to wrap individual messages.
     * It should accept props of type HTMLAttributes<HTMLLIElement> and a 'message' prop of type Message.
     */
    MessageWrapper: React__default.ComponentType<HTMLAttributes<HTMLLIElement> & {
        message: Message;
    }>;
    /**
     * An optional array of initial messages to populate the conversation.
     */
    intialConversations?: Message[];
}
declare const Conversation: FC<ConversationProps>;

export { Conversation as C, Feedback as F, type Message as M, MessageRole as a, MessageStatus as b };
