import { type BlockInterface, type SurfaceType, type StyleValue } from './types.js'; import { MappingFactory } from './mapping-factory.js'; /** * Fluent builder for constructing Slack Block Kit structures. * Delegates to MappingFactory for block/element instantiation. */ export declare class BlockBuilder { private blockFactory; private currentBlock?; private currentSurface?; constructor(blockFactory?: MappingFactory); /** * Initialize with a Section block for the given surface. */ initAsSectionForSurface(surface?: SurfaceType): this; /** * Initialize with a block of the given type for the given surface. */ initWithTypeForSurface(type: string, surface?: SurfaceType): this; /** * Initialize with a pre-made block for the given surface. */ initWithBlockForSurface(block: BlockInterface, surface?: SurfaceType): this; /** * Add text to the current block (Section text or Context element). */ addText(label: string, type?: string, emoji?: boolean, verbatim?: boolean): this; /** * Add a button element. */ addButton(actionId: string, label: string, url?: string, value?: string, style?: StyleValue): this; /** * Add a checkbox group element. */ addCheckbox(actionId: string, choices: Record, chosen?: string[]): this; /** * Add an image element. */ addImage(imageUrl: string, altText?: string): this; /** * Add a date picker element. */ addDatePicker(actionId: string, text?: string, date?: string): this; /** * Add a plain text input element. */ addPlainTextInput(actionId: string, text?: string, value?: string, multiline?: boolean, minLength?: number, maxLength?: number): this; /** * Finalize and return the built block. */ build(): BlockInterface; private ensureBlock; private validateSurfaceForBlock; private validateElementForBlock; private addElementToBlock; } /** * Creates the default block factory with all standard block types. */ export declare function createDefaultBlockFactory(): MappingFactory; //# sourceMappingURL=block-builder.d.ts.map