/// <reference types="node" />
import { EventEmitter } from 'events';
import { JsonObject } from 'type-fest';
import { TelegramClient } from 'messaging-api-telegram';
import Session from '../session/Session';
import { Connector } from '../bot/Connector';
import TelegramContext from './TelegramContext';
import TelegramEvent from './TelegramEvent';
import { TelegramRawEvent, TelegramRequestBody, TelegramRequestContext } from './TelegramTypes';
declare type ConnectorOptionsWithoutClient = {
    accessToken: string;
    origin?: string;
    skipLegacyProfile?: boolean;
};
declare type ConnectorOptionsWithClient = {
    client: TelegramClient;
    skipLegacyProfile?: boolean;
};
export declare type TelegramConnectorOptions = ConnectorOptionsWithoutClient | ConnectorOptionsWithClient;
export default class TelegramConnector implements Connector<TelegramRequestBody, TelegramClient> {
    _client: TelegramClient;
    _skipLegacyProfile: boolean;
    constructor(options: TelegramConnectorOptions);
    _getRawEventFromRequest(body: TelegramRequestBody): TelegramRawEvent;
    get platform(): 'telegram';
    get client(): TelegramClient;
    getUniqueSessionKey(body: TelegramRequestBody): string;
    updateSession(session: Session, body: TelegramRequestBody): Promise<void>;
    mapRequestToEvents(body: TelegramRequestBody): TelegramEvent[];
    createContext(params: {
        event: TelegramEvent;
        session: Session | null;
        initialState?: JsonObject | null;
        requestContext?: TelegramRequestContext;
        emitter?: EventEmitter | null;
    }): TelegramContext;
    preprocess(): {
        shouldNext: true;
    };
}
export {};
//# sourceMappingURL=TelegramConnector.d.ts.map