import FileBox from 'file-box';
import { ContactPayload, MessagePayload, Receiver, FriendshipPayload, RoomMemberPayload, RoomPayload, UrlLinkPayload, MiniProgramPayload, PuppetOptions, Puppet, RoomInvitationPayload } from 'wechaty-puppet';
import { PadplusContactPayload, PadplusRoomPayload, PadplusRoomMemberPayload, PadplusRoomInvitationPayload, FriendshipPayload as PadplusFriendshipPayload, GetContactSelfInfoGrpcResponse } from './schemas';
import { PadplusMessagePayload } from './schemas/model-message';
export declare class PuppetPadplus extends Puppet {
    options: PuppetOptions;
    private manager;
    constructor(options?: PuppetOptions);
    start(): Promise<void>;
    private startManager;
    stop(): Promise<void>;
    logout(): Promise<void>;
    onMessage(message: PadplusMessagePayload): Promise<void>;
    /**
     * ========================
     *     CONTACT SECTION
     * ========================
     */
    contactSelfQrcode(): Promise<string>;
    contactSelfName(name: string): Promise<void>;
    contactSelfSignature(signature: string): Promise<void>;
    contactSelfInfo(): Promise<GetContactSelfInfoGrpcResponse>;
    contactAlias(contactId: string): Promise<string>;
    contactAlias(contactId: string, alias: string | null): Promise<void>;
    contactAvatar(contactId: string): Promise<FileBox>;
    contactAvatar(contactId: string, file: FileBox): Promise<void>;
    contactList(): Promise<string[]>;
    protected contactRawPayload(contactId: string): Promise<PadplusContactPayload>;
    protected contactRawPayloadParser(rawPayload: PadplusContactPayload): Promise<ContactPayload>;
    /**
     * =========================
     *    FRIENDSHIP SECTION
     * =========================
     */
    onFriendshipEvent(message: PadplusMessagePayload): Promise<void>;
    friendshipAdd(contactId: string, hello?: string): Promise<void>;
    friendshipAccept(friendshipId: string): Promise<void>;
    protected friendshipRawPayload(friendshipId: string): Promise<PadplusFriendshipPayload>;
    protected friendshipRawPayloadParser(rawPayload: PadplusFriendshipPayload): Promise<FriendshipPayload>;
    /**
     * ========================
     *      MESSAGE SECTION
     * ========================
     */
    messageFile(messageId: string): Promise<FileBox>;
    messageUrl(messageId: string): Promise<UrlLinkPayload>;
    messageContact(messageId: string): Promise<string>;
    messageMiniProgram(messageId: string): Promise<MiniProgramPayload>;
    messageForward(receiver: Receiver, messageId: string): Promise<void>;
    private generateBaseMsg;
    messageSendText(receiver: Receiver, text: string, mentionIdList?: string[]): Promise<void | string>;
    private replayTextMsg;
    messageSendContact(receiver: Receiver, contactId: string): Promise<void | string>;
    private replayContactMsg;
    messageSendFile(receiver: Receiver, file: FileBox): Promise<void | string>;
    private replayImageMsg;
    private replayAppMsg;
    messageSendUrl(receiver: Receiver, urlLinkPayload: UrlLinkPayload): Promise<void | string>;
    private replayUrlLinkMsg;
    messageSendMiniProgram(receiver: Receiver, miniProgramPayload: MiniProgramPayload): Promise<void | string>;
    messageRawPayload(messageId: string): Promise<PadplusMessagePayload>;
    messageRawPayloadParser(rawPayload: PadplusMessagePayload): Promise<MessagePayload>;
    /**
     * ========================
     *      ROOM SECTION
     * ========================
     */
    onRoomJoinEvent(message: PadplusMessagePayload): Promise<void>;
    onRoomLeaveEvent(message: PadplusMessagePayload): Promise<void>;
    onRoomTopicEvent(message: PadplusMessagePayload): Promise<void>;
    roomInvitationAccept(roomInvitationId: string): Promise<void>;
    protected roomInvitationRawPayload(roomInvitationId: string): Promise<PadplusRoomInvitationPayload>;
    protected roomInvitationRawPayloadParser(rawPayload: PadplusRoomInvitationPayload): Promise<RoomInvitationPayload>;
    roomAdd(roomId: string, contactId: string): Promise<void>;
    roomAvatar(roomId: string): Promise<FileBox>;
    roomCreate(contactIdList: string[], topic?: string | undefined): Promise<string>;
    roomDel(roomId: string, contactId: string): Promise<void>;
    roomQuit(roomId: string): Promise<void>;
    roomTopic(roomId: string): Promise<string>;
    roomTopic(roomId: string, topic: string): Promise<void>;
    roomTopic(roomId: string, topic?: string | undefined): Promise<string | void>;
    roomQrcode(roomId: string): Promise<string>;
    roomList(): Promise<string[]>;
    roomMemberList(roomId: string): Promise<string[]>;
    protected roomRawPayload(roomId: string): Promise<PadplusRoomPayload>;
    protected roomRawPayloadParser(rawPayload: PadplusRoomPayload): Promise<RoomPayload>;
    protected roomMemberRawPayload(roomId: string, contactId: string): Promise<PadplusRoomMemberPayload>;
    protected roomMemberRawPayloadParser(rawPayload: PadplusRoomMemberPayload): Promise<RoomMemberPayload>;
    roomAnnounce(roomId: string): Promise<string>;
    roomAnnounce(roomId: string, text: string): Promise<void>;
    ding(data?: string): void;
}
export default PuppetPadplus;
//# sourceMappingURL=puppet-padplus.d.ts.map