You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
| import { ContentMessage, OpenGroupMessage } from '../messages/outgoing';
 | |
| import { RawMessage } from '../types/RawMessage';
 | |
| import { TypedEventEmitter } from '../utils';
 | |
| import { PubKey } from '../types';
 | |
| import { ClosedGroupChatMessage } from '../messages/outgoing/content/data/group/ClosedGroupChatMessage';
 | |
| import {
 | |
|   ClosedGroupAddedMembersMessage,
 | |
|   ClosedGroupEncryptionPairMessage,
 | |
|   ClosedGroupNameChangeMessage,
 | |
|   ClosedGroupRemovedMembersMessage,
 | |
|   ClosedGroupUpdateMessage,
 | |
| } from '../messages/outgoing/content/data/group';
 | |
| import { ClosedGroupMemberLeftMessage } from '../messages/outgoing/content/data/group/ClosedGroupMemberLeftMessage';
 | |
| import { ClosedGroupEncryptionPairRequestMessage } from '../messages/outgoing/content/data/group/ClosedGroupEncryptionPairRequestMessage';
 | |
| 
 | |
| export type GroupMessageType =
 | |
|   | OpenGroupMessage
 | |
|   | ClosedGroupChatMessage
 | |
|   | ClosedGroupAddedMembersMessage
 | |
|   | ClosedGroupRemovedMembersMessage
 | |
|   | ClosedGroupNameChangeMessage
 | |
|   | ClosedGroupMemberLeftMessage
 | |
|   | ClosedGroupUpdateMessage
 | |
|   | ClosedGroupEncryptionPairMessage
 | |
|   | ClosedGroupEncryptionPairRequestMessage;
 | |
| 
 | |
| // ClosedGroupEncryptionPairReplyMessage must be sent to a user pubkey. Not a group.
 | |
| 
 | |
| export interface MessageQueueInterfaceEvents {
 | |
|   sendSuccess: (
 | |
|     message: RawMessage | OpenGroupMessage,
 | |
|     wrappedEnvelope?: Uint8Array
 | |
|   ) => void;
 | |
|   sendFail: (message: RawMessage | OpenGroupMessage, error: Error) => void;
 | |
| }
 | |
| 
 | |
| export interface MessageQueueInterface {
 | |
|   events: TypedEventEmitter<MessageQueueInterfaceEvents>;
 | |
|   sendToPubKey(user: PubKey, message: ContentMessage): Promise<void>;
 | |
|   send(device: PubKey, message: ContentMessage): Promise<void>;
 | |
|   sendToGroup(
 | |
|     message: GroupMessageType,
 | |
|     sentCb?: (message?: RawMessage) => Promise<void>
 | |
|   ): Promise<void>;
 | |
|   sendSyncMessage(
 | |
|     message: any,
 | |
|     sentCb?: (message?: RawMessage) => Promise<void>
 | |
|   ): Promise<void>;
 | |
|   processPending(device: PubKey): Promise<void>;
 | |
| }
 |