UNPKG

fox-block-builder

Version:

Maintainable code for loop slack-block-kit-like modal builder

133 lines (132 loc) 5.69 kB
import { Builder } from '../lib'; import type { AttachmentBuilder, OptionBuilder, OptionGroupBuilder } from '../../bits'; import type { Appendable, FilterString } from '../types'; export declare abstract class Attachments extends Builder { /** * @description Adds attachments to your message. * * {@link https://api.slack.com/block-kit|Open Official Slack Block Kit Documentation} * {@link https://www.blockbuilder.dev|Open Block Builder Documentation} */ attachments(...attachments: Appendable<AttachmentBuilder>): this; } export declare abstract class Blocks<T> extends Builder { /** * @description Adds blocks to your view or message. * * **Slack Validation Rules and Tips:** * * **Required for modals, home tabs, and workflow steps** ⚠ * * Maximum of 100 blocks. * * {@link https://api.slack.com/block-kit|Open Official Slack Block Kit Documentation} * {@link https://www.blockbuilder.dev|Open Block Builder Documentation} */ blocks(...blocks: Appendable<T>): this; } export declare abstract class Elements<T> extends Builder { /** * @description Adds elements to the actions block. * * **Slack Validation Rules and Tips:** * * **Required** ⚠ * * Maximum of 5 elements. * * Supported elements are buttons, select and overflow menus, and date pickers. * * {@link https://api.slack.com/block-kit|Open Official Slack Block Kit Documentation} * {@link https://www.blockbuilder.dev|Open Block Builder Documentation} */ elements(...elements: Appendable<T>): this; } export declare abstract class Fields extends Builder { /** * @description Adds text fields to the section block, in two columns, side-by-side. * * **Slack Validation Rules and Tips:** * * **Required if the text property is undefined** ⚠ * * Maximum of 10 items. * * Maximum of 2000 characters for each field. * * Markdown supported. * * {@link https://api.slack.com/block-kit|Open Official Slack Block Kit Documentation} * {@link https://www.blockbuilder.dev|Open Block Builder Documentation} */ fields(...fields: Appendable<string>): this; } export declare abstract class Filter extends Builder { /** * @description Defines which conversations should be included in the list. * * **Slack Validation Rules and Tips:** * * Possible values are *im*, *impm*, *private*, and *public*. * * {@link https://api.slack.com/block-kit|Open Official Slack Block Kit Documentation} * {@link https://www.blockbuilder.dev|Open Block Builder Documentation} */ filter(...filters: Appendable<FilterString>): this; } export declare abstract class InitialChannels extends Builder { /** * @description Pre-populates the menu with selected, default channels. * * {@link https://api.slack.com/block-kit|Open Official Slack Block Kit Documentation} * {@link https://www.blockbuilder.dev|Open Block Builder Documentation} */ initialChannels(...channelIds: Appendable<string>): this; } export declare abstract class InitialConversations extends Builder { /** * @description Pre-populates the menu with selected, default conversations. * * {@link https://api.slack.com/block-kit|Open Official Slack Block Kit Documentation} * {@link https://www.blockbuilder.dev|Open Block Builder Documentation} */ initialConversations(...conversationIds: Appendable<string>): this; } export declare abstract class InitialOptions extends Builder { /** * @description Pre-populates the menu or checkbox input with selected, default options. * * **Slack Validation Rules and Tips:** * * Must be exact matches to options in the menu. * * {@link https://api.slack.com/block-kit|Open Official Slack Block Kit Documentation} * {@link https://www.blockbuilder.dev|Open Block Builder Documentation} */ initialOptions(...options: Appendable<OptionBuilder>): this; } export declare abstract class InitialUsers extends Builder { /** * @description Pre-populates the menu with selected, default users. * * {@link https://api.slack.com/block-kit|Open Official Slack Block Kit Documentation} * {@link https://www.blockbuilder.dev|Open Block Builder Documentation} */ initialUsers(...userIds: Appendable<string>): this; } export declare abstract class OptionGroups extends Builder { /** * @description Adds organized groups of options to the select or multi-select menu, each with its own label or title. * * **Slack Validation Rules and Tips:** * * Maximum of 100 options. * * Both options and options groups cannot be defined at the same time for any element. * * {@link https://api.slack.com/block-kit|Open Official Slack Block Kit Documentation} * {@link https://www.blockbuilder.dev|Open Block Builder Documentation} */ optionGroups(...optionGroups: Appendable<OptionGroupBuilder>): this; } export declare abstract class Options extends Builder { /** * @description Adds options to the select or multi-select menu. * * **Slack Validation Rules and Tips:** * * **Required** ⚠ * * Maximum of 100 options. * * Both options and options groups cannot be defined at the same time for any element. * * {@link https://api.slack.com/block-kit|Open Official Slack Block Kit Documentation} * {@link https://www.blockbuilder.dev|Open Block Builder Documentation} */ options(...options: Appendable<OptionBuilder>): this; }