import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; import type { NormalizedMessageContent } from "@pinet/transport-core"; import type { Broker } from "./broker/index.js"; export interface IMessageToolSendInput { threadId: string; body: string; source: "imessage"; channel: string; content: NormalizedMessageContent; agentName: string; agentEmoji: string; agentOwnerToken: string; metadata: Record; } export interface IMessageToolSendResult { adapter: string; messageId: number; } export interface RegisterIMessageToolsDeps { pinetEnabled: () => boolean; brokerRole: () => "broker" | "follower" | null; requireToolPolicy: (toolName: string, threadTs: string | undefined, action: string) => void; getActiveBroker: () => Broker | null; getActiveBrokerSelfId: () => string | null; sendFollowerIMessage: (input: IMessageToolSendInput) => Promise; getAgentIdentity: () => { name: string; emoji: string; ownerToken: string; }; trackOwnedThread: (threadId: string, channel: string, source: "imessage") => void; } export declare function registerIMessageTools(pi: ExtensionAPI, deps: RegisterIMessageToolsDeps): void;