import { Type } from '@angular/core'; import { EntityType, PropertyType, Property } from '../entitytype'; export declare enum WidgetType { EntityType = 0, PropertyType = 1, RelationshipType = 2, FieldType = 3, Entity = 4, Property = 5, Relationship = 6, Field = 7, } export declare abstract class Rule { port: string; entitySelector: string; component: Type; configuration: any; constructor(port: string, entitySelector: string, component: Type, configuration?: any); abstract hasDefaultScope(): boolean; abstract getWidgetType(): WidgetType; } export declare class WidgetConnection { widget: Type; configuration: any; constructor(widget: Type, configuration?: any); } export declare class AbstractRuleService { protected rules: T[]; addRule(rule: T): void; protected matchExpression(text: string, expression: string): boolean; protected checkDefaultScope(defaultScope: Rule, port: string): void; } export declare const DEFAULT_SCOPE = "*"; export declare class EntityTypeRule extends Rule { constructor(port: string, entitySelector: string, component: Type, configuration?: any); hasDefaultScope(): boolean; getWidgetType(): WidgetType; } export declare class EntityTypeRuleService extends AbstractRuleService { getWidget(entityType: EntityType, port: string): WidgetConnection; } export declare class PropertyTypeRule extends Rule { propertySelector: string; propertyTypeTypeSelector: string; constructor(port: string, entitySelector: string, propertySelector: string, propertyTypeTypeSelector: string, component: Type, configuration?: any); hasDefaultScope(): boolean; getWidgetType(): WidgetType; } export declare class PropertyTypeRuleService extends AbstractRuleService { getWidget(propertyType: PropertyType, port: string): WidgetConnection; } export declare class PropertyRule extends Rule { propertySelector: string; propertyTypeTypeSelector: string; constructor(port: string, entitySelector: string, propertySelector: string, propertyTypeTypeSelector: string, component: Type, configuration?: any); hasDefaultScope(): boolean; getWidgetType(): WidgetType; } export declare class PropertyRuleService extends AbstractRuleService { getWidget(property: Property, port: string): WidgetConnection; } export declare class EntityRule extends Rule { constructor(port: string, entitySelector: string, component: Type, configuration?: any); hasDefaultScope(): boolean; getWidgetType(): WidgetType; } export declare class EntityRuleService extends AbstractRuleService { getWidget(entityType: EntityType, port: string): WidgetConnection; } export declare class RuleService { private entityTypeRuleService; private propertyTypeRuleService; private propertyRuleService; private entityRuleService; constructor(); addDefaultEntityTypeRule(port: string, component: Type, configuration?: any): void; addEntityTypeRule(port: string, entitySelector: string, component: Type, configuration?: any): void; getEntityTypeWidget(entityType: EntityType, port: string): WidgetConnection; addDefaultPropertyTypeRule(port: string, component: Type, configuration?: any): void; addPropertyTypeRule(port: string, entitySelector: string, propertySelector: string, propertyTypeTypeSelector: string, component: Type, configuration?: any): void; getPropertyTypeWidget(propertyType: PropertyType, port: string): WidgetConnection; addDefaultPropertyRule(port: string, component: Type, configuration?: any): void; addPropertyRule(port: string, entitySelector: string, propertySelector: string, propertyTypeTypeSelector: string, component: Type, configuration?: any): void; getPropertyWidget(property: Property, port: string): WidgetConnection; addDefaultEntityRule(port: string, component: Type, configuration?: any): void; addEntityRule(port: string, entitySelector: string, component: Type, configuration?: any): void; getEntityWidget(entityType: EntityType, port: string): WidgetConnection; }