import { Adapter, Context, Schema } from 'koishi';
import { BotConfig, TelegramBot } from './bot';
import * as Telegram from './types';
import { AdapterConfig } from './utils';
declare abstract class TelegramAdapter extends Adapter<BotConfig, AdapterConfig> {
    /** Init telegram updates listening */
    abstract listenUpdates(bot: TelegramBot): Promise<void>;
    connect(bot: TelegramBot): Promise<void>;
    onUpdate(update: Telegram.Update, bot: TelegramBot): Promise<void>;
}
export declare class HttpServer extends TelegramAdapter {
    static schema: Schema<BotConfig, BotConfig>;
    constructor(ctx: Context, config: AdapterConfig);
    listenUpdates(bot: TelegramBot): Promise<void>;
    start(): Promise<void>;
    stop(): void;
}
export declare class HttpPolling extends TelegramAdapter {
    static schema: Schema<{
        pollingTimeout?: number;
    } & {
        [x: string]: any;
    }, {
        pollingTimeout?: number;
    } & {
        [x: string]: any;
    }>;
    private offset;
    private isStopped;
    start(): void;
    stop(): void;
    listenUpdates(bot: TelegramBot): Promise<void>;
}
export {};
