import * as PUPPET from '@juzi/wechaty-puppet';
import { FileBox, type FileBoxInterface } from '../config.js';
import type PuppetWhatsApp from '../puppet-whatsapp.js';
import type { WhatsAppContactPayload as RoomPayload, InviteV4Data } from '../schema/whatsapp-type.js';
export declare function roomList(this: PuppetWhatsApp): Promise<string[]>;
export declare function roomCreate(this: PuppetWhatsApp, contactIdList: string[], topic: string): Promise<string>;
export declare function roomAdd(this: PuppetWhatsApp, roomId: string, contactId: string): Promise<void>;
export declare function roomDel(this: PuppetWhatsApp, roomId: string, contactIds: string | string[]): Promise<void>;
export declare function roomQuit(this: PuppetWhatsApp, roomId: string): Promise<void>;
export declare function roomAvatar(this: PuppetWhatsApp, roomId: string, avatar?: FileBoxInterface): Promise<FileBox | void>;
export declare function roomTopic(this: PuppetWhatsApp, roomId: string): Promise<string>;
export declare function roomTopic(this: PuppetWhatsApp, roomId: string, topic: string): Promise<void>;
export declare function roomQRCode(this: PuppetWhatsApp, roomId: string): Promise<string>;
/**
 * Get member id list from cache
 * @param { PuppetWhatsApp } this whatsapp client
 * @param { string } roomId roomId
 * @returns { string[] } member id list
 */
export declare function roomMemberList(this: PuppetWhatsApp, roomId: string): Promise<string[]>;
export declare function roomMemberRawPayload(this: PuppetWhatsApp, roomId: string, contactId: string): Promise<PUPPET.payloads.RoomMember>;
export declare function roomMemberRawPayloadParser(this: PuppetWhatsApp, rawPayload: PUPPET.payloads.RoomMember): Promise<PUPPET.payloads.RoomMember>;
export declare function roomAnnounce(this: PuppetWhatsApp, roomId: string): Promise<string>;
export declare function roomAnnounce(this: PuppetWhatsApp, roomId: string, text: string): Promise<void>;
/**
*
* Room Invitation
*
*/
export declare function roomInvitationAccept(this: PuppetWhatsApp, roomInvitationId: string): Promise<void>;
export declare function roomInvitationRawPayload(this: PuppetWhatsApp, roomInvitationId: string): Promise<Partial<InviteV4Data>>;
/**
 *
 * @param this PuppetWhatsapp
 * @param rawPayload Partial<InviteV4Data>
 * @returns Partial<InviteV4Data>
 * TODO: Here we return Partial<InviteV4Data> for roomInvitationAccept usage, We may need other fields required by RoomInvitationPayload
 */
export declare function roomInvitationRawPayloadParser(this: PuppetWhatsApp, rawPayload: any): Promise<PUPPET.payloads.RoomInvitation>;
export declare function roomRawPayload(this: PuppetWhatsApp, id: string): Promise<RoomPayload>;
export declare function roomRawPayloadParser(this: PuppetWhatsApp, roomPayload: RoomPayload): Promise<PUPPET.payloads.Room>;
//# sourceMappingURL=room.d.ts.map