import { Adapter } from "../../adapter";
import { App } from "../../server/app";
import { Client, Config as IcqqConfig, Sendable } from "@icqqjs/icqq";
import { OneBot } from "../../onebot";
export default class IcqqAdapter extends Adapter<"icqq", Sendable> {
    #private;
    constructor(app: App, config: IcqqAdapter.Config);
    setOnline(uin: string): Promise<void>;
    setOffline(uin: string): Promise<void>;
    callApi<V extends OneBot.Version>(uin: string, version: V, [name, args]: [string, any[]]): any;
    createOneBot(uin: string, protocol: IcqqConfig, versions: OneBot.Config[]): OneBot;
    formatEventPayload<V extends OneBot.Version>(uin: string, version: V, event: string, data: any): OneBot.Payload<V>;
    sendPrivateMessage<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, args: [string]): Promise<boolean>;
    sendGroupMessage<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>>;
    sendPrivateForwardMessage<V extends OneBot.Version>(uin: string, version: V, [user_id, messages]: [string, OneBot.MessageNode<V>[]]): Promise<OneBot.MessageRet<V>>;
    sendGroupForwardMessage<V extends OneBot.Version>(uin: string, version: V, [group_id, messages]: [string, OneBot.MessageNode<V>[]]): Promise<OneBot.MessageRet<V>>;
    getMessage<V extends OneBot.Version>(uin: string, version: V, [message_id]: [string]): Promise<OneBot.Message<V>>;
    call<V extends OneBot.Version>(uin: string, version: V, method: string, args?: any[]): Promise<any>;
    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>[];
    getSelfInfo<V extends OneBot.Version>(uin: string, version: V): OneBot.SelfInfo<V>;
    startOneBot(oneBot: OneBot): Promise<Function>;
    start(uin?: string): Promise<void>;
    stop(uin?: string, force?: boolean): Promise<void>;
}
declare module "../../adapter" {
    namespace Adapter {
        interface Configs {
            icqq: IcqqAdapter.Config;
        }
    }
}
export declare const defaultIcqqConfig: IcqqConfig;
export declare namespace IcqqAdapter {
    interface Config extends Adapter.Config<"icqq"> {
        protocol?: IcqqConfig;
        password?: string;
    }
}
