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
TypeScript
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>;