import { Raw, Client, Sessions } from '../platform.node.js';
import { Options } from './Options.js';
import { MainContext } from '../Context/index.js';
import { Telegram } from '../Methods/Telegram.js';
import type { Message } from '../TL/Messages/Message.js';
import type { ConversationManager } from '../Conversation/manager.js';
export declare class Snake<T = {}> extends MainContext<T> {
    _options: Options;
    _client: Client;
    _cacheMessage: Map<bigint, Map<number, Message>>;
    _me: Raw.User;
    _rndMsgId: Sessions.MsgId;
    api: Telegram;
    constructor(options?: Options);
    private _init;
    stop(): Promise<void>;
    run(): Promise<boolean>;
    restart(): void;
    getMe(): Promise<Raw.users.UserFull>;
    connect(): Promise<void>;
    exportSession(): Promise<string>;
    get core(): Client;
    get conversation(): ConversationManager<T>;
}
export declare function shutdown(...clients: Array<Snake>): void;
