/** * Mirrors work-item feed comments into the Slack thread the card was born from. * The bot cannot post as the commenter, so attribution is textual: `**Name**: body`. */ import type { MountedMastraCode } from '@mastra/code-sdk'; import type { WorkItemCommentRow } from '../../storage/domains/comments/base.js'; import type { WorkItemFeedPublisher } from '../../storage/domains/comments/feed-sync.js'; import type { ExternalWorkItemSource, WorkItemRow } from '../../storage/domains/work-items/base.js'; export declare class SlackFeedPublisher implements WorkItemFeedPublisher { #private; readonly id = "slack"; constructor({ controller }: { controller?: MountedMastraCode['controller']; }); publish(comment: WorkItemCommentRow, workItem: WorkItemRow): Promise<{ source: ExternalWorkItemSource; } | null>; } /** * The one key both sync directions stamp on a mirrored message, so an ingested * aside and a mirrored comment cannot diverge. Workspace-scoped like the card's * own key: a channel id and a `ts` only identify a message inside the team that * issued them, and one project can hold two Slack workspaces. */ export declare function slackCommentSource(threadId: string, messageTs: string, teamId?: string): ExternalWorkItemSource; //# sourceMappingURL=feed-publisher.d.ts.map