import { Adapter } from "../../adapter";
import { App } from "../../server/app";
import { OneBot } from "../../onebot";
import { Bot, Sendable } from "qq-official-bot";
export default class QQAdapter extends Adapter<"qq", Sendable> {
    #private;
    constructor(app: App, config: QQAdapter.Config);
    startOneBot(oneBot: OneBot<Bot>): Promise<() => void>;
    setOnline(uin: string): Promise<void>;
    setOffline(uin: string): Promise<void>;
    createOneBot(uin: string, protocol: Bot.Config, versions: OneBot.Config[]): OneBot;
    sendGroupMessage<V extends OneBot.Version>(uin: string, version: V, args: [string, Sendable, string]): Promise<OneBot.MessageRet<V>>;
    sendPrivateMessage<V extends OneBot.Version>(uin: string, version: V, args: [string, Sendable, string]): Promise<OneBot.MessageRet<V>>;
    sendGuildMessage<V extends OneBot.Version>(uin: string, version: V, args: [string, string, Sendable, string]): Promise<OneBot.MessageRet<V>>;
    sendDirectMessage<V extends OneBot.Version>(uin: string, version: V, args: [string, Sendable, string]): Promise<OneBot.MessageRet<V>>;
    deleteMessage(uin: string, version: "V11" | "V12", [message_id]: [string]): Promise<boolean>;
    call(uin: string, version: string, method: string, args?: any[]): Promise<any>;
    uploadMedia(uin: string, target_id: string, target_type: "group" | "user", file_data: string, file_type: 1 | 2 | 3): Promise<any>;
    fromSegment<V extends OneBot.Version>(onebot: OneBot<Bot>, version: V, segment: OneBot.Segment<V> | OneBot.Segment<V>[]): Sendable;
    toSegment<V extends OneBot.Version, M = Sendable>(version: V, message: M): OneBot.Segment<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 {
            qq: QQAdapter.Config;
        }
    }
}
export declare namespace QQAdapter {
    interface Config extends Adapter.Config<"qq"> {
        protocol: Omit<Bot.Config, "appid">;
    }
}
