import { IPluginFormBlock, PluginFormBlockDto } from './plugin-form-block.dto';
export declare class PluginFormBase {
    blocks: PluginFormBlockDto[];
    private_metadata?: string;
    setBlocks(blocks: IPluginFormBlock[]): this;
    setBlockById(block: IPluginFormBlock): this;
    addBlocks(index?: number, del?: number, ...blocks: IPluginFormBlock[]): this;
    /** Получение блока по ID */
    getBlockById(blockId: string): PluginFormBlockDto | undefined;
    /** Получение custom value блока */
    getCustomBlock(id: number): PluginFormBlockDto | undefined;
    setBlockParam<T extends keyof IPluginFormBlock>(id: string, name: T, value: PluginFormBlockDto[T]): this;
    /** Установка label */
    setBlockLabel(blockId: string, label: string): this;
    /** Установка value */
    setBlockValue(blockId: string, value: string): this;
    /** Установка text */
    setBlockText(blockId: string, text: string): this;
    /** Получение значений мультиселектов в виде массивов */
    getMultiSelectBlock(blockId: string): {
        value: string;
        text?: string;
    }[];
    /** Получение названия задачи из значения блока */
    getTitleFromBlocks(title?: string): string;
    /** Получение значения блока "другое" из соотв. блока */
    getBlockOtherText(blockId: string): PluginFormBlockDto | undefined;
    /** Получение обычных блоков */
    getRegularBlocks(): PluginFormBlockDto[];
    /** Получение custom value блоков */
    getCustomBlocks(): PluginFormBlockDto[];
    /** Получение custom value блоков с файлами */
    getCustomFileBlocks(): PluginFormBlockDto[];
    /** Получение обычных блоков с файлами */
    getFileBlocks(): PluginFormBlockDto[];
    /** Удаление блоков custom value */
    removeCustomBlocks(): void;
    /** Удаление блоков с флагом exclude */
    removeExcludedBlocks(): this;
    /** Форматирование в Fields c опцональным выбором блоков */
    toFields(...includeIds: string[]): {
        title: string | null;
        value: string | undefined;
    }[];
    /** Форматирование в строку markdown c опцональным выбором блоков */
    asString({ includeIds, md, }: {
        includeIds?: string[];
        md: boolean;
    }): string;
    /** Форматирование в строку markdown c опцональным выбором блоков */
    toMarkdown(...includeIds: string[]): string;
}
