import { TemplateResult } from "lit-html"; import { Bloc } from "./bloc"; import { BuildWhenFunction } from "./bloc-builder"; export interface StateBuilderFunction { (state: S): TemplateResult; } export interface GuiMakerConfig { tag_prefix?: string; tag_name: string; builder_function: StateBuilderFunction; bloc_name: string; blocs_map?: Record>; buildWhen?: BuildWhenFunction; } export declare class GuiMaker { static make(config: GuiMakerConfig): TemplateResult; private static tag_name_from_config; /** * Will define a tag and return its name. * You can add properties on this tags and use it in blocs later on. * @param config * @returns tag-prefix-tag-name */ static define(config: GuiMakerConfig): string; } export declare abstract class ApexBloc extends Bloc { constructor(initState?: TemplateResult); abstract notifyAttributeChange(newValue: T): void; }