165 lines
5.0 KiB
TypeScript
165 lines
5.0 KiB
TypeScript
|
type ChatType = 'singleChat' | 'groupChat' | 'chatRoom';
|
||
|
export interface FileParameters {
|
||
|
/** The message type. */
|
||
|
type: 'file';
|
||
|
/** The message ID. */
|
||
|
id: string;
|
||
|
}
|
||
|
/** The delivery priority of chat room messages.
|
||
|
* Currently, this attribute is available only to chat room messages. If this attribute is not set, messages are assigned a medium priority. */
|
||
|
export type MessagePriority =
|
||
|
/** High. */
|
||
|
| 'high'
|
||
|
/** Medium. */
|
||
|
| 'normal'
|
||
|
/** Low. */
|
||
|
| 'low';
|
||
|
|
||
|
export interface FileObj {
|
||
|
url: string;
|
||
|
filename: string;
|
||
|
filetype: string;
|
||
|
data: File;
|
||
|
}
|
||
|
export interface FileMsgSetParameters {
|
||
|
/** The session type. */
|
||
|
chatType: ChatType;
|
||
|
/** The file object. */
|
||
|
file: FileObj;
|
||
|
/** The file name. */
|
||
|
filename?: string;
|
||
|
/** The input ID of the file to be uploaded. */
|
||
|
fileInputId?: string;
|
||
|
/** The recipient. */
|
||
|
to: string;
|
||
|
/** The sender, which can only be the current user and can not be changed.*/
|
||
|
from?: string;
|
||
|
/** @deprecated Whether the session type is chat room. */
|
||
|
roomType?: boolean;
|
||
|
/** The callback for message sending success. */
|
||
|
success?: () => void;
|
||
|
/** The callback for a message sending failure. */
|
||
|
fail?: () => void;
|
||
|
/** The message extension. */
|
||
|
ext?: {
|
||
|
[key: string]: any;
|
||
|
};
|
||
|
/** File upload address. */
|
||
|
apiUrl?: string;
|
||
|
/** The callback of a file upload error. */
|
||
|
onFileUploadError?: (error: any) => void;
|
||
|
/** The callback of file upload completion. */
|
||
|
onFileUploadComplete?: (data: any) => void;
|
||
|
/** The callback of the file upload progress. */
|
||
|
onFileUploadProgress?: (data: any) => void;
|
||
|
/** The message body. */
|
||
|
body?: {
|
||
|
/** The file URL. */
|
||
|
url: string;
|
||
|
/** The file type. */
|
||
|
type: string;
|
||
|
/** The file name. */
|
||
|
filename: string;
|
||
|
};
|
||
|
/** Whether the message is a thread message. */
|
||
|
isChatThread?: boolean;
|
||
|
}
|
||
|
export interface FileMsgBody extends CreateFileMsgParameters {
|
||
|
/** The message ID. */
|
||
|
id: string;
|
||
|
/** @deprecated Whether the session type is group. */
|
||
|
group?: string;
|
||
|
/** @deprecated Whether the session type is chat room. */
|
||
|
roomType?: boolean;
|
||
|
/** The callback for message sending success. */
|
||
|
success?: () => void;
|
||
|
/** The callback for a message sending failure. */
|
||
|
fail?: () => void;
|
||
|
/** Time. */
|
||
|
time: number;
|
||
|
/** Whether read receipts are required during a group session. */
|
||
|
msgConfig?: {
|
||
|
allowGroupAck: boolean;
|
||
|
};
|
||
|
/** Message priority. */
|
||
|
priority?: MessagePriority;
|
||
|
/** Whether global notify message or not. */
|
||
|
broadcast?: boolean;
|
||
|
/** Whether the message content is replaced. This property is valid only when `useReplacedMessageContent` is set to `true` during initialization. */
|
||
|
isContentReplaced?: boolean;
|
||
|
/** Whether the message is delivered only when the recipient(s) is/are online:
|
||
|
* - `true`: The message is delivered only when the recipient(s) is/are online. If the recipient is offline, the message is discarded.
|
||
|
* - (Default) `false`: The message is delivered when the recipient(s) is/are online. If the recipient(s) is/are offline, the message will not be delivered to them until they get online.
|
||
|
*/
|
||
|
deliverOnlineOnly?: boolean;
|
||
|
}
|
||
|
export interface CreateFileMsgParameters {
|
||
|
/** The message type. */
|
||
|
type: 'file';
|
||
|
/** The session type. */
|
||
|
chatType: ChatType;
|
||
|
/** The file object. */
|
||
|
file: FileObj;
|
||
|
/** The file name. */
|
||
|
filename?: string;
|
||
|
/** The input ID of the file to be uploaded. */
|
||
|
fileInputId?: string;
|
||
|
/** The recipient. */
|
||
|
to: string;
|
||
|
/** The sender, which can only be the current user and can not be changed.*/
|
||
|
from?: string;
|
||
|
/** The message extension. */
|
||
|
ext?: {
|
||
|
[key: string]: any;
|
||
|
};
|
||
|
/** The callback of a file upload error. */
|
||
|
onFileUploadError?: (error: any) => void;
|
||
|
/** The callback of file upload completion. */
|
||
|
onFileUploadComplete?: (data: any) => void;
|
||
|
/** The callback of the file upload progress. */
|
||
|
onFileUploadProgress?: (data: any) => void;
|
||
|
/** The message body. */
|
||
|
body?: {
|
||
|
/** The file URL. */
|
||
|
url: string;
|
||
|
/** The file type. */
|
||
|
type: string;
|
||
|
/** The file name. */
|
||
|
filename: string;
|
||
|
};
|
||
|
/** Whether read receipts are required during a group session. */
|
||
|
msgConfig?: {
|
||
|
allowGroupAck: boolean;
|
||
|
};
|
||
|
/** Whether the message is a thread message. */
|
||
|
isChatThread?: boolean;
|
||
|
/** Message priority. */
|
||
|
priority?: MessagePriority;
|
||
|
/** Whether the message is delivered only when the recipient(s) is/are online:
|
||
|
* - `true`: The message is delivered only when the recipient(s) is/are online. If the recipient is offline, the message is discarded.
|
||
|
* - (Default) `false`: The message is delivered when the recipient(s) is/are online. If the recipient(s) is/are offline, the message will not be delivered to them until they get online.
|
||
|
*/
|
||
|
deliverOnlineOnly?: boolean;
|
||
|
/** The list of message recipients. */
|
||
|
receiverList?: string[];
|
||
|
}
|
||
|
export declare class FileMsg {
|
||
|
id: string;
|
||
|
type: 'file';
|
||
|
body?: FileMsgBody;
|
||
|
constructor(parameters: FileParameters);
|
||
|
/**
|
||
|
* @hidden
|
||
|
*/
|
||
|
set(options: FileMsgSetParameters): void;
|
||
|
/**
|
||
|
* @hidden
|
||
|
*/
|
||
|
setChatType(chatType: ChatType): boolean;
|
||
|
/**
|
||
|
* @hidden
|
||
|
*/
|
||
|
setGroup(group: string): boolean;
|
||
|
static create(options: CreateFileMsgParameters): FileMsgBody;
|
||
|
}
|