import { IDependencyComposer, DependencyComposer } from "./DependencyComposer"; import { IApiComposer, WebComponentOptions, ISecurityComposer } from "./models"; import { CombinableRuleComposer, ICombinableRuleComposer } from "./CombinableRuleComposer"; import { WebComponentDefinition, OmniaBlock } from '../../fx-models'; import { ComposerBase } from './ComposerBase'; export interface IWebComponentComposer extends IDependencyComposer, IApiComposer, ISecurityComposer { /** * The definition for this component, information shown for the component while e.g. being displayed in component pickers */ withDefinition: (definition: WebComponentDefinition) => IWebComponentComposer; /** Add a rule(s) when the component should be loaded Make sure to add rules which is not to generic, i.e. only load when needed (Only (OOTB) rules that are implementing ICombinableLoadRule can be added.) */ withLoadRules: () => ICombinableRuleComposer; registerOmniaBlock: >(options?: T) => IWebComponentComposer; } export declare class ComponentComposer extends ComposerBase implements IWebComponentComposer { done: () => IWebComponentComposer; private ruleComposer; constructor(manifestId: string, manifestName?: string); withDefinition: (definition: WebComponentDefinition) => this; registerComponent: (componentOptions: WebComponentOptions) => this; withLoadRules: () => CombinableRuleComposer; registerOmniaBlock: >(options?: T) => this; withNoDependency: () => this; withDependency: (manifestId: string) => DependencyComposer; withExternalDependency: (omniaServiceId: string, manifestId: string) => DependencyComposer; private persistCombinedRules; }