import { Raw } from '../platform.node.js';
import { Composer, ErrorHandler } from './Composer.js';
import { Update } from '../TL/Updates/Update.js';
import { TgsnakeApi } from '../Plugins/index.js';
import { ConversationManager } from '../Conversation/manager.js';
import type { Snake } from '../Client/Snake.js';
export declare class MainContext<T> extends Composer<T> {
    protected _errorHandler: ErrorHandler<T>;
    protected _plugin: TgsnakeApi;
    protected _localPtsChat: Map<bigint, Array<number>>;
    protected _commonBox: Map<string, number>;
    protected _conversation: ConversationManager<T>;
    constructor();
    handleUpdate(update: Raw.TypeUpdates, client: Snake): Promise<any>;
    parseUpdate(update: Raw.TypeUpdates, client: Snake): Promise<Array<object>>;
    syncChannelUpdate(client: Snake): () => Promise<any>;
    processDifference(client: Snake, difference: Raw.updates.TypeDifference): Promise<Array<Update | Raw.TypeUpdates>>;
    processChannelDifference(client: Snake, difference: Raw.updates.TypeChannelDifference): Promise<Array<Update | Raw.TypeUpdates>>;
    catch(errorHandler: ErrorHandler<T>): void;
}
