import { RecvPacket, SendPacket, Setting } from './proto'; export declare const ChannelTypePerson = 1; export declare const ChannelTypeGroup = 2; export declare class Channel { channelID: string; channelType: number; constructor(channelID: string, channelType: number); getChannelKey(): string; static fromChannelKey(channelKey: string): Channel | undefined; isEqual(c: Channel): boolean; } export declare class Reaction { seq: string; count: number; emoji: string; users: any[]; } export declare class MessageHeader { reddot: boolean; noPersist: boolean; syncOnce: boolean; dup: boolean; } export declare enum MessageStatus { Wait = 0, Normal = 1, Fail = 2 } export declare class Message { constructor(recvPacket?: RecvPacket); static fromSendPacket(sendPacket: SendPacket, content?: MessageContent): Message; header: MessageHeader; setting: Setting; clientSeq: number; messageID: string; messageSeq: number; clientMsgNo: string; fromUID: string; channel: Channel; timestamp: number; private _contentType; content: MessageContent; status: MessageStatus; voicePlaying: boolean; voiceReaded: boolean; reactions: Reaction[]; isDeleted: boolean; remoteExtra: MessageExtra; get send(): boolean; get contentType(): number; } export declare class MessageExtra { messageID: string; channel: Channel; messageSeq: number; readed: boolean; readedAt: Date; readedCount: number; unreadCount: number; revoke: boolean; revoker?: string; contentEditData?: Uint8Array; contentEdit?: MessageContent; editedAt: number; isEdit: boolean; extra: any; extraVersion: number; } export declare class Mention { all?: boolean; uids?: string[]; } export declare class MessageContent { private _contentType; get contentType(): number; set contentType(value: number); private _conversationDigest; get conversationDigest(): string; set conversationDigest(value: string); private visibles?; private invisibles?; reply: Reply; mention?: Mention; contentObj: any; encode(): Uint8Array; decode(data: Uint8Array): void; isVisiable(uid: string): boolean; decodeJSON(content: any): void; encodeJSON(): any; } export declare class MediaMessageContent extends MessageContent { file?: File; extension: string; remoteUrl: string; dealFile(): void; } export declare class Subscriber { uid: string; name: string; remark: string; avatar: string; role: number; channel: Channel; version: number; isDeleted: boolean; status: number; orgData: any; } export declare class ChannelInfo { channel: Channel; title: string; logo: string; mute: boolean; top: boolean; orgData: any; online: boolean; lastOffline: number; } export declare class Conversation { channel: Channel; private _channelInfo; unread: number; _logicUnread: number; timestamp: number; lastMessage?: Message; extra?: any; _remoteExtra: ConversationExtra; private _isMentionMe?; private _reminders; simpleReminders: Reminder[]; get channelInfo(): ChannelInfo | undefined; isEqual(c: Conversation): boolean; get isMentionMe(): boolean | undefined; set isMentionMe(isMentionMe: boolean | undefined); get remoteExtra(): ConversationExtra; set remoteExtra(remoteExtra: ConversationExtra); get logicUnread(): number; set reminders(reminders: Reminder[]); get reminders(): Reminder[]; reloadIsMentionMe(): void; } export declare class ConversationExtra { channel: Channel; browseTo: number; keepMessageSeq: number; keepOffsetY: number; draft?: string; version: number; } export declare class SignalKey { identityKey: ArrayBuffer; signedKeyID: number; signedPubKey: ArrayBuffer; signedSignature: ArrayBuffer; preKeyID?: number; preKeyPublicKey?: ArrayBuffer; registrationId: number; } export declare class Reply { messageID?: string; messageSeq: number; fromUID: string; fromName: string; rootMessageID?: string; content: MessageContent; encode(): { message_id: string | undefined; message_seq: number; from_uid: string; from_name: string; }; decode(data: any): void; } export declare enum ReminderType { ReminderTypeMentionMe = 1, ReminderTypeApplyJoinGroup = 2 } export declare class Reminder { channel: Channel; reminderID: number; messageID: string; messageSeq: number; reminderType: ReminderType; text?: string; data?: any; isLocate: boolean; version: number; done: boolean; isEqual(c: Reminder): boolean; } export declare class SyncOptions { maxMessageSeq: number; minMessageSeq: number; limit: number; reverse: boolean; } export declare class MessageContentManager { contentMap: Map MessageContent>; private factor; private static instance; static shared(): MessageContentManager; private constructor(); register(contentType: number, handler: (contentType?: number) => MessageContent): void; registerFactor(factor: (contentType: number) => MessageContent | undefined): void; getMessageContent(contentType: number): MessageContent; } /** * 文本 */ export declare class MessageText extends MessageContent { text?: string; constructor(text?: string); get conversationDigest(): string; get contentType(): number; decodeJSON(content: any): void; encodeJSON(): any; } export declare class MessageSignalContent extends MessageContent { get contentType(): number; } /** * 未知 */ export declare class UnknownContent extends MessageContent { realContentType: number; get contentType(): number; get conversationDigest(): string; decodeJSON(content: any): void; } /** * 系统消息 */ export declare class SystemContent extends MessageContent { content: any; private _displayText; decodeJSON(content: any): void; get conversationDigest(): string; get displayText(): string; } export declare class CMDContent extends MessageContent { cmd: string; param: any; decodeJSON(content: any): void; get contentType(): number; }