import { Builder } from "@dawntech/dwntbots-models"; import { BlipService } from "../BlipService"; interface TransitionsTable { [id: string]: Set; } interface VariableEntry { block: Builder.Block; entity: Builder.ContentAction | Builder.CustomAction | Builder.ConditionOutput; type: "CONTENT" | "ACTION" | "OUTPUT"; } interface VariablesTable { [id: string]: Array; } export declare enum BuilderType { WORKING = "working", PUBLISHED = "published" } export declare class BlipBuilder { flow: Builder.Flow; globalActions: Builder.GlobalActions; configuration: Builder.Configuration; transitionOut: TransitionsTable; transitionIn: TransitionsTable; variable: VariablesTable; static NEW_BLOCK: string; static FALLBACK_BLOCK_ID: string; static ONBOARDING_BLOCK_ID: string; static WELCOME_BLOCK_ID: string; static ERROR_BLOCK_ID: string; static DESK_BLOCK_ID: RegExp; static SMARTSALES_BLOCK_ID: RegExp; constructor(flow: Builder.Flow, globalActions?: Builder.GlobalActions, configuration?: Builder.Configuration); update(): void; static load(service: BlipService, type?: BuilderType): Promise; static hasTag(block: Builder.Block, label: string, exclude?: Array): boolean; static addTag(block: Builder.Block, tag: Builder.Tag): boolean; static isCommomBlock(block: Builder.Block): boolean; private updateTransitionTables; private updateTransitions; private updateContentVariables; private updateActionVariables; private updateOutputVariables; private updateVariables; static insertOrReplace(item: T, items: Array, index: number): boolean; static insertIfNotExists(item: T, items: Array, index: number): boolean; static getById(items: Array, $id: string): T; static updateStriptVariable(action: Builder.ExecuteScriptCustomAction, variable: string, value: any): void; save(service: BlipService, type?: BuilderType): Promise; getConfigValue(key: string, defaultValue: T): T; setConfigValue(key: string, value: T): Builder.Configuration; hasBlock(id: string): boolean; addBlock(block: Builder.Block): boolean; getBlocks(): Builder.Block[]; getBlock(id: string): Builder.Block; getOrCreateBlock(id: string): Builder.Block; updateBlockId(block: Builder.Block, id: string): void; getFlowFileData(): string; getBlockInfo(block: Builder.Block): { transitions: { in: string[]; out: string[]; }; variables: string[] | VariableEntry[]; }; } export {};