import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@gajae-code/agent-core"; import { z } from "zod/v4"; import type { ToolSession } from "./index"; export declare const telegramSendSchema: z.ZodObject<{ path: z.ZodString; caption: z.ZodOptional; }, z.core.$strip>; type TelegramSendParams = z.infer; interface TelegramSendDetails { path: string; caption?: string; ok: boolean; error?: string; } export declare const TELEGRAM_SEND_DESCRIPTION: string; export declare class TelegramSendTool implements AgentTool { private readonly session; readonly name = "telegram_send"; readonly label = "TelegramSend"; readonly summary = "Send a workspace file to Telegram"; readonly loadMode = "discoverable"; readonly description: string; readonly parameters: z.ZodObject<{ path: z.ZodString; caption: z.ZodOptional; }, z.core.$strip>; readonly strict = true; constructor(session: ToolSession); static createIf(session: ToolSession): TelegramSendTool | null; /** * Resolve `requested` against the workspace root and confine it via realpath: * blocks absolute paths outside the project, `..` traversal, and symlinks that * escape the root. Returns the resolved real path of a regular file, or an * error message. This is the egress safety boundary — the model can only send * files that genuinely live inside the session workspace. */ private resolveContainedFile; execute(_toolCallId: string, params: TelegramSendParams, _signal?: AbortSignal, _onUpdate?: AgentToolUpdateCallback, _context?: AgentToolContext): Promise>; } export {};