import type { InboxMessage } from "./helpers.js"; type SlackToolPolicyMessageRef = Pick & Partial>; import { type SecurityGuardrails } from "./guardrails.js"; export interface SlackToolPolicyRuntimeDeps { getBrokerRole: () => "broker" | "follower" | null; getGuardrails: () => SecurityGuardrails; requireToolPolicy: (toolName: string, threadTs: string | undefined, action: string) => void; formatAction: (action: string) => string; formatError: (error: unknown) => string; deliverFollowUpMessage: (prompt: string) => boolean; beginThreadStatus?: (channel: string, threadTs: string, status: string) => Promise; updateThreadStatus?: (channel: string, threadTs: string, status: string) => Promise; clearThreadStatus?: (channel: string, threadTs: string) => Promise; } export interface SlackToolPolicyRuntime { deliverTrackedSlackFollowUpMessage: (options: { prompt: string; messages: SlackToolPolicyMessageRef[]; }) => boolean; onInput: (event: { source?: string; text: string; }) => Promise; onTurnStart: () => Promise; onTurnEnd: () => Promise; onAgentEnd: () => Promise; onToolCall: (event: { toolName: string; input: Record; }) => Promise<{ block: true; reason: string; } | undefined>; } export declare function createSlackToolPolicyRuntime(deps: SlackToolPolicyRuntimeDeps): SlackToolPolicyRuntime; export {};