/**
* The threading types.
* @module TYPES
*/
import { UserId } from './common';
import { MessageBody } from './message';
/** The message thread interface. */
interface ChatThread {
/** The ID of the parent message in the message thread. */
messageId: string;
/** The group ID to which the message thread belongs. */
parentId: string;
/** The message thread name. */
chatThreadName: SVGStringList;
}
/** The message thread overview interface. */
interface ChatThreadOverview {
/** The message thread ID. */
id: string;
/** The group ID to which the message thread belongs. */
parentId: string;
/** The message thread name. */
name: string;
/** The last threaded reply. */
lastMessage: LastMessage;
/** The Unix timestamp when the message thread is created. The unit is millisecond. */
createTimestamp: number;
/** The Unix timestamp when the message thread overview is updated. The unit is millisecond. */
updateTimestamp: number;
/** The number of threaded replies. */
messageCount: number;
}
/** The interface for the last threaded reply. */
interface LastMessage {
/** The message ID. */
id: string;
/** The user ID of the sender. */
from: string;
/** The user ID of the recipient. */
to: string;
/** The Unix timestamp when the message is sent. The unit is millisecond. */
timestamp: number;
/** The message content. */
payload: any;
}
export declare type Operation = 'create' | 'update' | 'delete' | 'update_msg';
/** The interface for message thread events. */
interface ThreadNotifyServerMsg {
/** The event type. */
operation: Operation;
/** The ID of the parent message in the message thread. */
msg_parent_id?: string;
/** The message thread ID. */
id: string;
/** The group ID to which the message thread belongs. */
muc_parent_id: string;
/** The message thread name. */
name: string;
/** The Unix timestamp when an event occurs. The unit is millisecond. */
timestamp: number;
/** The operator. */
from?: string;
/** The last threaded reply. */
last_message?: LastMessage;
/** The number of threaded replies. */
message_count?: number;
}
/** The interface for the message thread creation result. */
interface CreateChatThreadResult {
/** The message thread ID. */
chatThreadId: string;
}
/** The interface for the message thread name changes. */
interface ChangeChatThreadName {
/** The message thread name. */
name: string;
}
/** The interface for the message thread member list. */
interface ChatThreadMembers {
/** The list of members in a message thread. */
affiliations: string[];
}
/** The definition for the result of removing a member from the message thread. */
declare type RemoveMemberResult = {
/** Whether the member is successfully removed from the message thread.
* - `true`: Yes.
* - `false`: No.
*/
result: boolean;
/** The ID of the removed message thread member. */
user: UserId;
};
/** The interface for the message thread details. */
interface ChatThreadDetail {
/** The message thread ID. */
id: string;
/** The message thread name. */
name: string;
/** The message thread creator. */
owner: string;
/** The Unix timestamp when the message thread is created. The unit is millisecond. */
created: number;
/** The member count of the message thread. */
affiliationsCount?: number;
/** The group ID to which the message thread belongs. */
parentId: string;
/** The ID of the parent message. */
messageId: string;
}
/** The interface for the result of joining the message thread. */
interface JoinChatThreadResult {
/** Whether the current user successfully joins the message thread. The value is `OK`, indicating that the user successfully joins the message thread.*/
status: string;
/** The message thread details. */
detail: ChatThreadDetail;
}
/** The interface for the last threaded reply. */
interface ChatThreadLastMessage {
/** The message thread ID. */
chatThreadId: string;
/** The last threaded reply. */
lastMessage: MessageBody;
}
/**
* The definition of the message thread event types:
* create: Occurs when creating a chat thread.
* update: Occurs when there is a new message in the chat thread.
* destroy: Occurs when a chat thread is deleted.
* userRemove: Occurs when you were kicked out of chat thread.
*/
declare type onChatThreadChangeType =
| 'create'
| 'update'
| 'destroy'
| 'userRemove';
/** The interface for the message thread event details. */
interface ThreadChangeInfo {
/** The message thread ID. */
id: string;
/** The message thread name. */
name: string;
/** The operator. */
operator: string;
/** The event type. */
operation: onChatThreadChangeType;
/** The group ID to which the message thread belongs. */
parentId: string;
/** The ID of the parent message. */
messageId?: string;
/** The number of threaded replies. */
messageCount?: number;
/** The last threaded reply. */
lastMessage?: MessageBody | {};
/** The operation object. */
userName?: string;
/** The Unix timestamp when the event occurs. The unit is millisecond. */
timestamp?: number;
/** The Unix timestamp when the message thread is created. The unit is millisecond.*/
createTimestamp?: number;
}
export type {
ChatThread,
ThreadNotifyServerMsg,
LastMessage,
ChatThreadOverview,
CreateChatThreadResult,
ChangeChatThreadName,
ChatThreadMembers,
RemoveMemberResult,
ChatThreadDetail,
JoinChatThreadResult,
ChatThreadLastMessage,
ThreadChangeInfo,
onChatThreadChangeType,
};