import type { SlackConfig, SlackMessage } from './slack.js'; /** A function that posts a Slack message and returns its `ts`. Injectable so tests can record calls. */ export type SlackPoster = (message: SlackMessage) => Promise; export type AnnounceReleaseOptions = { /** Version tag, e.g. "v2.124.0". */ tag: string; /** Public URL of the GitHub release. Omitted when the repository is unknown. */ releaseUrl?: string; /** The full release-notes body (English + Dutch), posted as thread replies. */ notesBody: string; /** Override the poster (defaults to posting to Slack with the given config). */ post?: SlackPoster; }; /** The short root message that links to the release; the notes follow as thread replies. */ export declare function buildReleaseRootMessage(tag: string, releaseUrl?: string): string; /** * Splits the notes into <= MAX_REPLY_LENGTH chunks, breaking on line boundaries so headings and list * items stay intact. A single line longer than the limit is hard-split as a last resort. */ export declare function chunkReleaseNotes(body: string, maxLength?: number): string[]; /** * Posts a short root announcement for a published release, then the full release notes as threaded * replies. Returns the root message `ts` and how many reply messages were posted. */ export declare function announceRelease(config: SlackConfig, options: AnnounceReleaseOptions): Promise<{ rootTs: string; replyCount: number; }>; //# sourceMappingURL=release-announcement.d.ts.map