import type { Agent } from "../agent/agent.js";
export declare class TelegramBot {
    private bot;
    private token;
    private agent;
    private allowedUsers;
    private attachmentsDir;
    /** Per-session chat context. Each incoming message runs its agent loop inside
     *  .run({chatId}) so the attachment sender can pin deliveries to the
     *  originating chat even under concurrent conversations. */
    private readonly chatContext;
    constructor(token: string, agent: Agent, allowedUsers: number[]);
    private isAllowed;
    private setupHandlers;
    start(): Promise<void>;
    stop(): void;
    /** Send a notification message to allowed users */
    notify(message: string): Promise<void>;
    private sendAttachment;
    /**
     * Fetch a Telegram file by file_id, save into attachments/ with a
     * collision-safe name, and return metadata.
     */
    private downloadToAttachments;
    private buildImageBlocks;
    private handleStreamingChat;
    private splitMessage;
}
