import { Adapters, type AdapterConfig, type Context, type EventDataApiBase, Tsu, type Session } from 'kotori-bot';
import OnebotApi from './api';
import type { EventDataType } from './types';
import OnebotElements from './elements';
interface EventDataPoke extends EventDataApiBase {
    targetId: string;
    groupId: string;
}
declare module 'kotori-bot' {
    interface EventsMapping {
        onebot_poke(session: Session<EventDataPoke>): void;
        literal_onebot_raw_data(data: Exclude<EventDataType['data'], undefined> | object): void;
    }
}
export declare const config: import("kotori-bot").UnionParser<[import("kotori-bot").ObjectParser<{
    mode: import("kotori-bot").LiteralParser<"ws">;
    port: import("kotori-bot").NumberParser;
    address: import("kotori-bot").Parser<string>;
    retry: import("kotori-bot").Parser<number>;
}>, import("kotori-bot").ObjectParser<{
    mode: import("kotori-bot").LiteralParser<"ws-reverse">;
}>]>;
type OnebotConfig = Tsu.infer<typeof config> & AdapterConfig;
export declare class OnebotAdapter extends Adapters.WebSocket<OnebotApi, OnebotConfig, OnebotElements> {
    private readonly address;
    private readonly isReverse;
    readonly config: OnebotConfig;
    readonly elements: OnebotElements;
    readonly api: OnebotApi;
    readonly platform = "onebot";
    constructor(ctx: Context, config: OnebotConfig, identity: string);
    handle(data: EventDataType): void;
    start(): void;
    stop(): void;
    send(action: string, params?: object): void;
    send(content: EventDataType, operation: object): void;
    private socket;
    private onlineTimerId;
}
export default OnebotAdapter;
