/** Slack credentials needed to post into a channel. */ export type SlackConfig = { /** Bot token with the chat:write scope. */ token: string; /** Channel ID (e.g. C0XXXXXXX) the bot is a member of. */ channel: string; }; /** A message to post: the text, and an optional thread to reply into. */ export type SlackMessage = { text: string; /** When set, the message is posted as a reply in this thread instead of a new root message. */ threadTs?: string; }; /** * Posts a message with chat.postMessage and returns its `ts` (timestamp id), which can be passed * back as `threadTs` to reply in the same thread. Throws when Slack reports a failure. */ export declare function postSlackMessage(config: SlackConfig, message: SlackMessage): Promise; /** Either ready-to-use Slack credentials, or a reason they are unavailable so the caller can skip. */ export type SlackConfigResolution = { config: SlackConfig; } | { unavailable: string; }; /** * Resolves the Slack bot token and channel id, preferring environment overrides and falling back to * 1Password. Returns `{ unavailable }` (rather than throwing) when either is missing, so a release * can still be published without an announcement. */ export declare function resolveSlackConfig(): Promise; //# sourceMappingURL=slack.d.ts.map