///
///
import { SocketConfig, GroupMetadata, ParticipantAction } from "../Models";
import { BinaryNode } from "../Internal";
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;
groupParticipantsUpdate: (jid: string, participants: string[], action: ParticipantAction) => Promise;
groupUpdateDescription: (jid: string, description?: string) => Promise;
groupInviteCode: (jid: string) => Promise;
groupRevokeInvite: (jid: string) => Promise;
groupAcceptInvite: (code: string) => Promise;
groupToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise;
groupSettingUpdate: (jid: string, setting: 'announcement' | 'not_announcement' | 'locked' | 'unlocked') => Promise;
groupFetchAllParticipating: () => Promise<{
[_: string]: GroupMetadata;
}>;
type: "md";
ws: import("ws");
ev: import("../Models").SuperChatsEventEmitter;
authState: {
creds: import("../Models").AuthenticationCreds;
keys: import("../Models").SignalKeyStoreWithTransaction;
};
user: import("../Models").Contact;
assertingPreKeys: (range: number, execute: (keys: {
[_: number]: any;
}) => Promise) => Promise;
generateMessageTag: () => string;
query: (node: BinaryNode, timeoutMs?: number) => Promise;
waitForMessage: (msgId: string, timeoutMs?: number) => Promise;
waitForSocketOpen: () => Promise;
sendRawMessage: (data: Uint8Array | Buffer) => Promise;
sendNode: (node: BinaryNode) => Promise;
logout: () => Promise;
close: () => Promise;
end: (error: Error) => void;
onUnexpectedError: (error: Error, msg: string) => void;
logs_e: (message: string) => void;
logs_i: (message: string) => void;
waitForConnectionUpdate: (check: (u: Partial) => boolean, timeoutMs?: number) => Promise;
};
export declare const extractGroupMetadata: (result: BinaryNode) => GroupMetadata;