/**
 * Slack API string-length guards.
 *
 * Slack rejects payloads where a string exceeds its surface-specific
 * limit (typing indicator, Block Kit `plain_text` fields, modal titles,
 * etc.). The chat SDK does not enforce these for us — anything that
 * overruns surfaces as a `chat.postMessage` / `assistant.threads.setStatus`
 * / `views.open` HTTP error. These helpers cap strings before they cross
 * the wire so a single long tool name or option label cannot fail the
 * whole event handler.
 */
/**
 * Typing indicator (`assistant.threads.setStatus`) caps at roughly 100
 * characters; we use 50 to match the pre-existing UX (statuses longer
 * than a glance are hard to read in the chat UI anyway).
 */
export declare const SLACK_TYPING_STATUS_MAX_LENGTH = 50;
/**
 * Block Kit `plain_text` fields used in `static_select` / `radio_buttons`
 * options and button labels are capped at 75 characters by Slack.
 */
export declare const SLACK_BLOCK_KIT_PLAIN_TEXT_MAX_LENGTH = 75;
/**
 * Block Kit `section` blocks cap `text.text` at 3000 chars. Anything
 * longer fails the whole post with `invalid_blocks`.
 */
export declare const SLACK_SECTION_TEXT_MAX_LENGTH = 3000;
/**
 * Top-level `text` field on `chat.postMessage` is capped at 40000 chars.
 */
export declare const SLACK_MESSAGE_TEXT_MAX_LENGTH = 40000;
/**
 * `views.open` modal title is capped at 24 characters.
 */
export declare const SLACK_MODAL_TITLE_MAX_LENGTH = 24;
/**
 * Normalizes a typing status: trims, collapses runs of whitespace into a
 * single space, then truncates to {@link SLACK_TYPING_STATUS_MAX_LENGTH}
 * with a trailing ellipsis when needed.
 */
export declare function truncateTypingStatus(status: string): string;
/**
 * Caps a Block Kit `plain_text` label/description at the Slack limit
 * with a trailing ellipsis. Pass `undefined` to short-circuit (option
 * descriptions are optional).
 */
export declare function truncatePlainText(value: string): string;
export declare function truncatePlainText(value: string | undefined): string | undefined;
/**
 * Caps a section block's `text.text` at the Slack limit with a
 * trailing ellipsis.
 */
export declare function truncateSectionText(value: string): string;
/**
 * Caps a `chat.postMessage` `text` field at the Slack limit with a
 * trailing ellipsis.
 */
export declare function truncateMessageText(value: string): string;
/**
 * Caps a modal title at the Slack limit with a trailing ellipsis.
 */
export declare function truncateModalTitle(value: string): string;
