import type { GroupMetadata } from '../Types/index.js'; import type { SocketContext } from './types.js'; /** * Verbs accepted by upstream Baileys' single-arg `groupSettingUpdate(jid, verb)`: * `'announcement' | 'not_announcement' | 'locked' | 'unlocked'`. Native * settings (`'announce' | 'membership_approval'`) flow through the * two-arg form with an explicit boolean value. */ type GroupSettingArg = 'announce' | 'membership_approval' | 'locked' | 'unlocked' | 'announcement' | 'not_announcement'; export declare const makeGroupMethods: (ctx: SocketContext) => { groupMetadata: (jid: string) => Promise; groupCreate: (subject: string, participants: string[]) => Promise; groupLeave: (jid: string) => Promise; groupUpdateSubject: (jid: string, subject: string) => Promise; groupUpdateDescription: (jid: string, description?: string) => Promise; groupParticipantsUpdate: (jid: string, participants: string[], action: "add" | "remove" | "promote" | "demote") => Promise; groupFetchAllParticipating: () => Promise>; groupInviteCode: (jid: string) => Promise; groupRevokeInvite: (jid: string) => Promise; groupSettingUpdate: (jid: string, setting: GroupSettingArg, value?: boolean) => Promise; groupToggleEphemeral: (jid: string, expiration: number) => Promise; groupAcceptInvite: (code: string) => Promise; /** Join a group via a GroupInviteMessage (V4 invite). */ groupAcceptInviteV4: (key: { remoteJid?: string | null; }, msg: { inviteCode?: string | null; inviteExpiration?: number | null; groupJid?: string | null; }) => Promise; groupGetInviteInfo: (code: string) => Promise; groupRequestParticipantsList: (jid: string) => Promise; groupRequestParticipantsUpdate: (jid: string, participants: string[], action: "approve" | "reject") => Promise; /** * Set or clear the bot's per-group "member label" — the small tag rendered * under the bot's display name inside that group's UI. Empty `label` * clears it. Sent as a `ProtocolMessage` over the regular message path * (matching WA Web's wire format), not as an IQ. * * Self-applied only — WhatsApp's protocol does not let admins change * other members' labels even with admin privileges; the same restriction * applies in the official mobile app. */ updateMemberLabel: (jid: string, label: string) => Promise; }; export {}; //# sourceMappingURL=groups.d.ts.map