/**
 * agent_bridge built-in tool — `chat_send`.
 *
 * Authoritative spec: `docs/tasks/T-warm-agent-chat-bridge.md` WAB.6 §"Tool
 * surface". Wraps the chat-daemon's `send` JSON-RPC method so the warm
 * agent can reply on the same channel that delivered the inbound message.
 *
 * Responsibility:
 *   1. Build a `project:<platform>` shorthand from the session's platform if
 *      the model didn't supply an explicit `channel` arg — the most common
 *      path is "reply on the same Telegram topic that delivered me".
 *   2. Forward the request to the chat-daemon over its UNIX socket via the
 *      same one-shot JSON-RPC pattern used by `src/mcp/chat-bridge-server.ts`
 *      and `src/chat_daemon/client.ts`. We re-implement the socket dance here
 *      (rather than importing) because:
 *        - `chat-bridge-server.ts` is an MCP-shaped binary, not a reusable
 *          library. Pulling its handlers into the agent-bridge would couple
 *          tool wiring to MCP transport boundaries.
 *      The duplicated socket logic is small (~40 LOC) and will collapse onto
 *      a shared `src/chat_daemon/client.ts` in a later cleanup pass.
 *
 * Non-responsibility:
 *   - Does NOT spawn the daemon. If the daemon isn't running, the call
 *     fails — the error surfaces back to the model as the tool_result so it
 *     can decide whether to retry or surrender.
 *   - Does NOT validate the channel URI scheme; the daemon does that.
 *
 * Imports from: node:net, node:os, node:path, ../types.js, ../../paths.js,
 *   zod.
 * Imported by: ./index.ts (tools barrel).
 */
import type { ToolHandler, ToolSpec } from '../types.js';
interface DaemonSendResult {
    ok: boolean;
    platform: string;
    message_id: string;
    delivered_at: string;
}
export interface DaemonSendParams {
    channel: string;
    text: string;
    replyTo?: string;
    threadId?: string;
    /** CAT.4 — absolute path to a local image to deliver as a photo (text →
     *  caption). Forwarded to the daemon `send` RPC as `mediaPath`. */
    imagePath?: string;
}
export type DaemonSendFn = (params: DaemonSendParams) => Promise<DaemonSendResult>;
/** Default daemon-send — the shared client's one-shot UDS RPC (CL.3: was a local copy
 *  of the socket dance; now delegates to the one owner src/chat_daemon/client.ts). The
 *  local `DaemonSendParams`/`DaemonSendResult` are structurally identical to the client's. */
export declare const defaultDaemonSend: DaemonSendFn;
export declare const chatSendSpec: ToolSpec;
export declare function makeChatSendHandler(daemonSend?: DaemonSendFn): ToolHandler;
export {};
//# sourceMappingURL=chat_send.d.ts.map