fox-block-builder
Version:
Maintainable code for loop slack-block-kit-like modal builder
133 lines (132 loc) • 5.69 kB
TypeScript
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;
}