UNPKG

slack-block-builder

Version:

Maintainable code for interactive Slack messages, modals, home tabs, and workflow steps. A must-have for the Slack Block Kit framework.

26 lines (25 loc) 3.09 kB
import type { ButtonBuilder, ChannelMultiSelectBuilder, ChannelSelectBuilder, CheckboxesBuilder, ConversationMultiSelectBuilder, ConversationSelectBuilder, DatePickerBuilder, DateTimePickerBuilder, ExternalMultiSelectBuilder, ExternalSelectBuilder, ImgBuilder, OverflowMenuBuilder, RadioButtonsBuilder, StaticMultiSelectBuilder, StaticSelectBuilder, TextInputBuilder, TimePickerBuilder, UserMultiSelectBuilder, UserSelectBuilder } from '../../elements'; import type { ActionsBuilder, ContextBuilder, DividerBuilder, FileBuilder, HeaderBuilder, ImageBuilder, InputBuilder, SectionBuilder, VideoBuilder } from '../../blocks'; import { EmailInputBuilder, NumberInputBuilder, URLInputBuilder } from '../../elements'; export declare type ActionsElementBuilder = ButtonBuilder | ChannelSelectBuilder | CheckboxesBuilder | ConversationSelectBuilder | DatePickerBuilder | DateTimePickerBuilder | ExternalSelectBuilder | OverflowMenuBuilder | RadioButtonsBuilder | StaticSelectBuilder | TimePickerBuilder | UserSelectBuilder; export declare type SectionElementBuilder = ButtonBuilder | ChannelMultiSelectBuilder | ChannelSelectBuilder | CheckboxesBuilder | ConversationMultiSelectBuilder | ConversationSelectBuilder | DatePickerBuilder | ExternalMultiSelectBuilder | ExternalSelectBuilder | ImgBuilder | OverflowMenuBuilder | RadioButtonsBuilder | StaticMultiSelectBuilder | StaticSelectBuilder | TimePickerBuilder | UserMultiSelectBuilder | UserSelectBuilder; export declare type InputElementBuilder = ChannelMultiSelectBuilder | ChannelSelectBuilder | CheckboxesBuilder | ConversationMultiSelectBuilder | ConversationSelectBuilder | DatePickerBuilder | DateTimePickerBuilder | EmailInputBuilder | ExternalMultiSelectBuilder | ExternalSelectBuilder | NumberInputBuilder | RadioButtonsBuilder | StaticMultiSelectBuilder | StaticSelectBuilder | TextInputBuilder | TimePickerBuilder | URLInputBuilder | UserMultiSelectBuilder | UserSelectBuilder; export declare type ContextElement = ImgBuilder | string; export declare type BlockBuilder = ActionsBuilder | ContextBuilder | DividerBuilder | FileBuilder | HeaderBuilder | ImageBuilder | InputBuilder | SectionBuilder | ViewBlockBuilder; export declare type ViewBlockBuilder = ActionsBuilder | ContextBuilder | DividerBuilder | HeaderBuilder | ImageBuilder | InputBuilder | SectionBuilder | VideoBuilder; export declare type FilterString = 'im' | 'mpim' | 'private' | 'public'; export interface ObjectLiteral { [key: string]: any; } export declare type Ctor<T = Record<string, unknown>> = new (...args: any[]) => T; export declare type AbstractCtor<T> = { prototype: T; }; export declare type Undefinable<T> = T | undefined; export declare type Nullable<T> = T | null; export declare type Settable<T> = Undefinable<T>; export declare type UndefinableArray<T> = Undefinable<T>[]; export declare type Appendable<T> = UndefinableArray<T | UndefinableArray<T>>; export declare type Fn<T, R> = (arg: T) => R; export declare type BlockBuilderReturnableFn<T> = Fn<T, Appendable<BlockBuilder>>; export declare type StringReturnableFn<T> = Fn<T, string>;