import { proto } from '../../WAProto' import { GroupMetadata, ParticipantAction, SocketConfig, ContactAction } from '../Types' import { BinaryNode } from '../WABinary' export declare const makeGroupsSocket: (config: SocketConfig) => { groupQuery: (jid: string, type: string, content: BinaryNode) => Promise 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 getLidUser: (jid: string) => Promise<{ lid: string id: string }[] | undefined> 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 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 clearMessage: (jid: string, key: import("../Types").WAProto.IMessageKey, timeStamp: number | import("long").Long) => Promise star: (jid: string, messages: { id: string fromMe?: boolean | undefined }[], star: boolean) => Promise addOrEditContact: (jid: string, contact: ContactAction) => Promise removeContact: (jid: string) => 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, code?: string) => Promise waitForConnectionUpdate: (check: (u: Partial) => boolean | undefined, timeoutMs?: number | undefined) => Promise sendWAMBuffer: (wamBuffer: Buffer) => Promise } export declare const extractGroupMetadata: (result: BinaryNode) => GroupMetadata