import * as PUPPET from '../../../src/mods/mod.js';
import type { FileBoxInterface } from 'file-box';
/**
 * expose to public for internal methods:
 */
import type { MessagePayloadFilterFunction } from '../../../src/schemas/message.js';
import type { RoomPayloadFilterFunction } from '../../../src/schemas/room.js';
import type { ContactPayloadFilterFunction } from '../../../src/schemas/contact.js';
import type { FriendshipAddOptions } from '../../../src/schemas/friendship.js';
declare class PuppetTest extends PUPPET.Puppet {
    name(): string;
    version(): string;
    onStart(): Promise<void>;
    onStop(): Promise<void>;
    ding(data?: string): Promise<void>;
    logout(): Promise<void>;
    /**
     *
     * ContactSelf
     *
     *
     */
    contactSelfQRCode(): Promise<string>;
    contactSelfName(name: string): Promise<void>;
    contactSelfSignature(signature: string): Promise<void>;
    /**
     *
     * Tag
     *
     */
    tagContactAdd(tagId: string, contactId: string): Promise<void>;
    tagContactRemove(tagId: string, contactId: string): Promise<void>;
    tagContactDelete(tagId: string): Promise<void>;
    tagContactList(contactId?: string): Promise<string[]>;
    /**
     *
     * Contact
     *
     */
    contactAlias(contactId: string): Promise<string>;
    contactAlias(contactId: string, alias: string | null): Promise<void>;
    contactAvatar(contactId: string): Promise<FileBoxInterface>;
    contactAvatar(contactId: string, file: FileBoxInterface): Promise<void>;
    contactPhone(contactId: string, phoneList: string[]): Promise<void>;
    contactList(): Promise<string[]>;
    contactCorporationRemark(contactId: string, corporationRemark: string | null): Promise<void>;
    contactDescription(contactId: string, description: string | null): Promise<void>;
    contactRawPayload(id: string): Promise<any>;
    contactRawPayloadParser(rawPayload: any): Promise<PUPPET.payloads.Contact>;
    /**
     *
     * Friendship
     *
     */
    friendshipRawPayload(id: string): Promise<any>;
    friendshipRawPayloadParser(rawPayload: any): Promise<PUPPET.payloads.Friendship>;
    friendshipSearchPhone(phone: string): Promise<null | string>;
    friendshipSearchHandle(handle: string): Promise<null | string>;
    friendshipAdd(contactId: string, option?: FriendshipAddOptions): Promise<void>;
    friendshipAccept(friendshipId: string): Promise<void>;
    /**
     *
     * Message
     *
     */
    messageContact(messageId: string): Promise<string>;
    messageFile(messageId: string): Promise<FileBoxInterface>;
    messageImage(messageId: string, imageType: PUPPET.types.Image): Promise<FileBoxInterface>;
    messageMiniProgram(messageId: string): Promise<PUPPET.payloads.MiniProgram>;
    messageUrl(messageId: string): Promise<PUPPET.payloads.UrlLink>;
    messageLocation(messageId: string): Promise<PUPPET.payloads.Location>;
    messageForward(conversationId: string, messageId: string): Promise<undefined | string>;
    messageSendContact(conversationId: string, contactId: string): Promise<undefined | string>;
    messageSendFile(conversationId: string, file: FileBoxInterface): Promise<undefined | string>;
    messageSendText(conversationId: string, text: string): Promise<undefined | string>;
    messageSendUrl(conversationId: string, urlLinkPayload: PUPPET.payloads.UrlLink): Promise<undefined | string>;
    messageSendMiniProgram(conversationId: string, miniProgramPayload: PUPPET.payloads.MiniProgram): Promise<undefined | string>;
    messageSendLocation(conversationId: string, locationPayload: PUPPET.payloads.Location): Promise<undefined | string>;
    messageSendPost(conversationId: string, postPayload: PUPPET.payloads.Post): Promise<undefined | string>;
    messageRawPayload(id: string): Promise<any>;
    messageRawPayloadParser(rawPayload: any): Promise<PUPPET.payloads.Message>;
    messageRecall(messageId: string): Promise<boolean>;
    /**
     *
     * Conversation
     *
     */
    conversationReadMark(conversationId: string, hasRead?: boolean): Promise<void | boolean>;
    /**
     *
     * Room Invitation
     *
     */
    roomInvitationAccept(_: string): Promise<void>;
    roomInvitationRawPayload(roomInvitationId: string): Promise<any>;
    roomInvitationRawPayloadParser(rawPayload: any): Promise<PUPPET.payloads.RoomInvitation>;
    /**
     *
     * Room
     *
     */
    roomAnnounce(roomId: string): Promise<string>;
    roomAnnounce(roomId: string, text: string): Promise<void>;
    roomAdd(roomId: string, contactId: string, inviteOnly?: boolean): Promise<void>;
    roomAvatar(roomId: string): Promise<FileBoxInterface>;
    roomCreate(contactIdList: string[], topic?: string): Promise<string>;
    roomDel(roomId: string, contactId: string): Promise<void>;
    roomQuit(roomId: string): Promise<void>;
    roomQRCode(roomId: string): Promise<string>;
    roomTopic(roomId: string): Promise<string>;
    roomTopic(roomId: string, topic: string): Promise<void>;
    roomList(): Promise<string[]>;
    roomMemberList(roomId: string): Promise<string[]>;
    roomRawPayload(id: string): Promise<any>;
    roomRawPayloadParser(rawPayload: any): Promise<PUPPET.payloads.Room>;
    roomMemberRawPayload(roomId: string, contactId: string): Promise<any>;
    roomMemberRawPayloadParser(rawPayload: any): Promise<PUPPET.payloads.RoomMember>;
    /**
     * expose to public for internal methods:
     */
    messageQueryFilterFactory(query: PUPPET.filters.Message): MessagePayloadFilterFunction;
    roomQueryFilterFactory(query: PUPPET.filters.Room): RoomPayloadFilterFunction;
    contactQueryFilterFactory(query: PUPPET.filters.Contact): ContactPayloadFilterFunction;
    /**
     * Posts
     */
    postRawPayload(postId: string): Promise<any>;
    postRawPayloadParser(rawPayload: any): Promise<PUPPET.payloads.Post>;
    postSearch(query: PUPPET.filters.Post, pagination?: PUPPET.filters.PaginationRequest): Promise<PUPPET.filters.PaginationResponse<string[]>>;
    postPublish(payload: PUPPET.payloads.Post): Promise<void | string>;
    /**
     * Tap
     */
    tap(postId: string, type?: PUPPET.types.Tap, tap?: boolean): Promise<void | boolean>;
    /**
     * Search for taps for a post
     *
     * @param query
     * @param pagination
     */
    tapSearch(postId: string, query?: PUPPET.filters.Tap, pagination?: PUPPET.filters.PaginationRequest): Promise<PUPPET.filters.PaginationResponse<PUPPET.payloads.Tap>>;
}
export { PuppetTest, };
export default PuppetTest;
//# sourceMappingURL=puppet-test.d.ts.map