import { Builder } from '../lib';
import { SlackDto, SlackBlockDto } from '../dto';
export declare abstract class BuildToJSON extends Builder {
    /**
     * @description Builds the view and returns it as a Slack API-compatible JSON string.
     */
    buildToJSON(): string;
}
export declare abstract class BuildToObject<T> extends Builder {
    /**
     * @description Builds the view and returns it as a Slack API-compatible object.
     */
    buildToObject(): Readonly<T>;
}
export declare abstract class End extends Builder {
    /**
     * @description Performs no alterations to the object on which it is called. It is meant to simulate a closing HTML tag for those who prefer to have an explicit end declared for an object.
     *
     * {@link https://api.slack.com/block-kit|Open Official Slack Block Kit Documentation}
     * {@link https://www.blockbuilder.dev|Open Block Builder Documentation}
     */
    end(): this;
}
export declare abstract class GetAttachments extends Builder {
    /**
     * @description Builds the view and returns a Slack API-compatible array of attachments.
     *
     * {@link https://api.slack.com/reference/messaging/attachments|View in Slack API Documentation}
     */
    getAttachments(): Readonly<SlackDto>[];
}
export declare abstract class GetBlocks extends Builder {
    /**
     * @description Builds the view and returns a Slack API-compatible array of blocks.
     *
     * {@link https://api.slack.com/block-kit|View in Slack API Documentation}
     */
    getBlocks(): Readonly<SlackBlockDto>[];
}
export declare abstract class GetPreviewUrl extends Builder {
    /**
     * @description Builds the view and returns the preview URL in order to open and preview the view on Slack's Block Kit Builder web application.
     */
    getPreviewUrl(): string;
}
export declare abstract class PrintPreviewUrl extends GetPreviewUrl {
    /**
     * @description Calls getPreviewUrl to build the preview URL and log it to the console.
     */
    printPreviewUrl(): void;
}
