///
///
import { proto } from '../../WAProto';
import { GroupMetadata, ParticipantAction, SocketConfig } from '../Types';
import { BinaryNode } from '../WABinary';
export declare const makeGroupsSocket: (config: SocketConfig) => {
groupMetadata: (jid: string) => Promise;
groupCreate: (subject: string, participants: string[]) => Promise;
groupLeave: (id: string) => Promise;
groupUpdateSubject: (jid: string, subject: string) => Promise;
groupRequestParticipantsList: (jid: string) => Promise<{
[key: string]: string;
}[]>;
groupRequestParticipantsUpdate: (jid: string, participants: string[], action: 'approve' | 'reject') => Promise<{
status: string;
jid: string;
}[]>;
groupParticipantsUpdate: (jid: string, participants: string[], action: ParticipantAction) => Promise<{
status: string;
jid: string;
content: BinaryNode;
}[]>;
groupUpdateDescription: (jid: string, description?: string) => Promise;
groupInviteCode: (jid: string) => Promise;
groupRevokeInvite: (jid: string) => Promise;
groupAcceptInvite: (code: string) => Promise;
/**
* revoke a v4 invite for someone
* @param groupJid group jid
* @param invitedJid jid of person you invited
* @returns true if successful
*/
groupRevokeInviteV4: (groupJid: string, invitedJid: string) => Promise;
/**
* accept a GroupInviteMessage
* @param key the key of the invite message, or optionally only provide the jid of the person who sent the invite
* @param inviteMessage the message to accept
*/
groupAcceptInviteV4: (key: string | proto.IMessageKey, inviteMessage: proto.Message.IGroupInviteMessage) => Promise;
groupGetInviteInfo: (code: string) => Promise;
groupToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise;
groupSettingUpdate: (jid: string, setting: 'announcement' | 'not_announcement' | 'locked' | 'unlocked') => Promise;
groupMemberAddMode: (jid: string, mode: 'admin_add' | 'all_member_add') => Promise;
groupJoinApprovalMode: (jid: string, mode: 'on' | 'off') => Promise;
groupFetchAllParticipating: () => Promise<{
[_: string]: GroupMetadata;
}>;
processingMutex: {
mutex(code: () => T | Promise): Promise;
};
fetchPrivacySettings: (force?: boolean) => Promise<{
[_: string]: string;
}>;
upsertMessage: (msg: proto.IWebMessageInfo, type: import("../Types").MessageUpsertType) => Promise;
appPatch: (patchCreate: import("../Types").WAPatchCreate) => Promise;
sendPresenceUpdate: (type: import("../Types").WAPresence, toJid?: string | undefined) => Promise;
presenceSubscribe: (toJid: string, tcToken?: Buffer | undefined) => Promise;
profilePictureUrl: (jid: string, type?: "image" | "preview", timeoutMs?: number | undefined) => Promise;
onWhatsApp: (...jids: string[]) => Promise<{
jid: string;
exists: unknown;
}[] | undefined>;
fetchBlocklist: () => Promise;
fetchStatus: (...jids: string[]) => Promise;
fetchDisappearingDuration: (...jids: string[]) => Promise;
updateProfilePicture: (jid: string, content: import("../Types").WAMediaUpload) => Promise;
removeProfilePicture: (jid: string) => Promise;
updateProfileStatus: (status: string) => Promise;
updateProfileName: (name: string) => Promise;
updateBlockStatus: (jid: string, action: "block" | "unblock") => Promise;
updateCallPrivacy: (value: import("../Types").WAPrivacyCallValue) => Promise;
updateMessagesPrivacy: (value: import("../Types").WAPrivacyMessagesValue) => Promise;
updateLastSeenPrivacy: (value: import("../Types").WAPrivacyValue) => Promise;
updateOnlinePrivacy: (value: import("../Types").WAPrivacyOnlineValue) => Promise;
updateProfilePicturePrivacy: (value: import("../Types").WAPrivacyValue) => Promise;
updateStatusPrivacy: (value: import("../Types").WAPrivacyValue) => Promise;
updateReadReceiptsPrivacy: (value: import("../Types").WAReadReceiptsValue) => Promise;
updateGroupsAddPrivacy: (value: import("../Types").WAPrivacyGroupAddValue) => Promise;
updateDefaultDisappearingMode: (duration: number) => Promise;
getBusinessProfile: (jid: string) => Promise;
resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise;
chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise;
cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: string | number | undefined) => Promise;
addLabel: (jid: string, labels: import("../Types/Label").LabelActionBody) => Promise;
addChatLabel: (jid: string, labelId: string) => Promise;
removeChatLabel: (jid: string, labelId: string) => Promise;
addMessageLabel: (jid: string, messageId: string, labelId: string) => Promise;
removeMessageLabel: (jid: string, messageId: string, labelId: string) => Promise;
star: (jid: string, messages: {
id: string;
fromMe?: boolean | undefined;
}[], star: boolean) => Promise;
executeUSyncQuery: (usyncQuery: import("..").USyncQuery) => Promise;
type: "md";
ws: import("./Client").WebSocketClient;
ev: import("../Types").BaileysEventEmitter & {
process(handler: (events: Partial) => void | Promise): () => void;
buffer(): void;
createBufferedFunction(work: (...args: A) => Promise): (...args: A) => Promise;
flush(force?: boolean | undefined): boolean;
isBuffering(): boolean;
};
authState: {
creds: import("../Types").AuthenticationCreds;
keys: import("../Types").SignalKeyStoreWithTransaction;
};
signalRepository: import("../Types").SignalRepository;
user: import("../Types").Contact | undefined;
generateMessageTag: () => string;
query: (node: BinaryNode, timeoutMs?: number | undefined) => Promise;
waitForMessage: (msgId: string, timeoutMs?: number | undefined) => Promise;
waitForSocketOpen: () => Promise;
sendRawMessage: (data: Uint8Array | Buffer) => Promise;
sendNode: (frame: BinaryNode) => Promise;
logout: (msg?: string | undefined) => Promise;
end: (error: Error | undefined) => void;
onUnexpectedError: (err: Error | import("@hapi/boom").Boom, msg: string) => void;
uploadPreKeys: (count?: number) => Promise;
uploadPreKeysToServerIfRequired: () => Promise;
requestPairingCode: (phoneNumber: string) => Promise;
waitForConnectionUpdate: (check: (u: Partial) => Promise, timeoutMs?: number | undefined) => Promise;
sendWAMBuffer: (wamBuffer: Buffer) => Promise;
};
export declare const extractGroupMetadata: (result: BinaryNode) => GroupMetadata;