///
import { Contactable } from "./internal";
import { Sendable, GroupMessage, ImageElem, Anonymous, Quotable } from "./message";
import { Gfs } from "./gfs";
import { DiscussMessageEvent, GroupAdminEvent, GroupInviteEvent, GroupSignEvent, GroupMessageEvent, GroupMuteEvent, GroupPokeEvent, GroupRecallEvent, GroupRequestEvent, GroupTransferEvent, MemberDecreaseEvent, MemberIncreaseEvent, MessageRet } from "./events";
import { GroupInfo, MemberInfo } from "./entities";
type Client = import("./client").Client;
export declare namespace Discuss {
interface EventMap {
message(e: DiscussMessageEvent): void;
}
}
/** 讨论组 */
export declare class Discuss extends Contactable {
readonly gid: number;
static as(this: Client, gid: number): Discuss;
/** {@link gid} 的别名 */
get group_id(): number;
protected constructor(c: Client, gid: number);
/** 发送一条消息 */
sendMsg(content: Sendable): Promise;
}
/** 群聊消息事件 */
export interface GroupMessageEventMap {
"message"(event: GroupMessageEvent): void;
/** 普通消息 */
"message.normal"(event: GroupMessageEvent): void;
/** 匿名消息 */
"message.anonymous"(event: GroupMessageEvent): void;
}
/** 群聊通知事件 */
export interface GroupNoticeEventMap {
"notice"(event: MemberIncreaseEvent | GroupSignEvent | MemberDecreaseEvent | GroupRecallEvent | GroupAdminEvent | GroupMuteEvent | GroupTransferEvent | GroupPokeEvent): void;
/** 群员新增 */
"notice.increase"(event: MemberIncreaseEvent): void;
/** 群员减少 */
"notice.decrease"(event: MemberDecreaseEvent): void;
/** 消息撤回 */
"notice.recall"(event: GroupRecallEvent): void;
/** 管理员变更 */
"notice.admin"(event: GroupAdminEvent): void;
/** 群禁言 */
"notice.ban"(event: GroupMuteEvent): void;
/** 群打卡 */
"notice.sign"(event: GroupSignEvent): void;
/** 群转让 */
"notice.transfer"(event: GroupTransferEvent): void;
/** 戳一戳 */
"notice.poke"(event: GroupPokeEvent): void;
}
/** 群聊申请事件 */
export interface GroupRequestEventMap {
"request"(event: GroupRequestEvent | GroupInviteEvent): void;
/** 加群申请 */
"request.add"(event: GroupRequestEvent): void;
/** 群邀请 */
"request.invite"(event: GroupInviteEvent): void;
}
/** 所有的群聊事件 */
export interface GroupEventMap extends GroupMessageEventMap, GroupNoticeEventMap, GroupRequestEventMap {
}
/** 群 */
export interface Group {
/** 撤回消息 */
recallMsg(msg: GroupMessage): Promise;
recallMsg(msgid: string): Promise;
recallMsg(seq: number, rand: number, pktnum?: number): Promise;
}
/** 群 */
export declare class Group extends Discuss {
private _info?;
static as(this: Client, gid: number, strict?: boolean): Group;
/** 群资料 */
get info(): GroupInfo | undefined;
/** 群名 */
get name(): string | undefined;
/** 我是否是群主 */
get is_owner(): boolean;
/** 我是否是管理 */
get is_admin(): boolean;
/** 是否全员禁言 */
get all_muted(): boolean;
/** 我的禁言剩余时间 */
get mute_left(): number;
/** 群文件系统 */
readonly fs: Gfs;
protected constructor(c: Client, gid: number, _info?: GroupInfo | undefined);
/**
* 获取群员实例
* @param uid 群员账号
* @param strict 严格模式,若群员不存在会抛出异常
*/
pickMember(uid: number, strict?: boolean): import("./member").Member;
/**
* 获取群头像url
* @param size 头像大小,默认`0`
* @param history 历史头像记录,默认`0`,若要获取历史群头像则填写1,2,3...
* @returns 头像的url地址
*/
getAvatarUrl(size?: 0 | 40 | 100 | 140, history?: number): string;
/** 强制刷新群资料 */
renew(): Promise;
private _fetchMembers;
/** 获取群员列表 */
getMemberMap(no_cache?: boolean): Promise