import { Adapter } from "../../adapter";
import { App } from "../../server/app";
import { OneBot } from "../../onebot";
import { Client, Sendable, BaseClient } from "web-wechat";
type WechatConfig = BaseClient.Config;
export default class WechatAdapter extends Adapter<"wechat", Sendable> {
    #private;
    constructor(app: App, config: WechatAdapter.Config);
    startOneBot(oneBot: OneBot<Client>): Promise<() => void>;
    setOnline(uin: string): Promise<void>;
    setOffline(uin: string): Promise<void>;
    createOneBot(uin: string, protocol: WechatConfig, versions: OneBot.Config[]): OneBot;
    call(uin: string, version: string, method: string, args?: any[]): Promise<any>;
    sendPrivateMessage<V extends OneBot.Version>(uin: string, version: V, args: [string, Sendable, string]): Promise<OneBot.MessageRet<V>>;
    sendGroupMessage<V extends OneBot.Version>(uin: string, version: V, args: [string, Sendable, string]): Promise<OneBot.MessageRet<V>>;
    deleteMessage<V extends OneBot.Version>(uin: string, version: V, [str]: [string]): Promise<boolean>;
    fromSegment<V extends OneBot.Version>(onebot: OneBot<Client>, version: V, segment: OneBot.Segment<V> | OneBot.Segment<V>[]): Sendable;
    toSegment<V extends OneBot.Version>(version: V, message: Sendable): OneBot.Segment<V>[];
    getFriendList<V extends OneBot.Version>(uin: string, version: V): Promise<OneBot.UserInfo<V>[]>;
    getGroupList<V extends OneBot.Version>(uin: string, version: V): Promise<OneBot.GroupInfo<V>[]>;
    formatEventPayload<V extends OneBot.Version>(uin: string, version: V, event: string, data: any): OneBot.Payload<V>;
    start(uin: string): Promise<void>;
    stop(uin?: string): Promise<void>;
    getSelfInfo<V extends OneBot.Version>(uin: string, version: V): OneBot.SelfInfo<V>;
}
declare module "../../adapter" {
    namespace Adapter {
        interface Configs {
            wechat: WechatAdapter.Config;
        }
    }
}
export declare namespace WechatAdapter {
    interface Config extends Adapter.Config<"wechat"> {
        protocol: WechatConfig;
    }
}
export {};
