import { Type } from '@angular/core'; import { WidgetConnection } from './meta/rule.service'; import { EntityType, PropertyType, Property } from './entitytype'; import { AbstractDAO } from './domain/abstract.dao'; import { InMemoryDAO } from './domain/inmemory.dao'; export declare class AngularmEvent { name: string; context: any; data: any; constructor(name: string, context: any, data: any); } export interface EventListener { (event: AngularmEvent): void; } export declare class AngularmService { private domain; private rule; private eventSource; private eventFired$; constructor(); subscribeEvent(eventName: string, eventListener: EventListener): void; subscribeEventForEntity(eventName: string, entityTypeName: string, eventListener: EventListener): void; fireEvent(eventName: string, context: any, data: any): void; setupDomain(...daos: AbstractDAO[]): void; listEntityTypes(): EntityType[]; cleanRules(): void; addService(service: AbstractDAO): void; listAll(entitytype: string): Promise; findUnique(entitytype: string, id: string | number): Promise; edit(entitytype: string, id: string | number, properties: any): void; create(entitytype: string, properties: any): void; delete(entitytype: string, id: string | number): void; findEntityType(name: string): Promise; getEntityTypeWidget(entityType: EntityType, port: string): WidgetConnection; getPropertyTypeWidget(propertyType: PropertyType, port: string): WidgetConnection; getPropertyWidget(property: Property, port: string): WidgetConnection; getEntityWidget(entityType: EntityType, port: string): WidgetConnection; detr(port: string, component: Type, configuration?: any): AngularmService; etr(port: string, entitySelector: string, component: Type, configuration?: any): AngularmService; dptr(port: string, component: Type, configuration?: any): AngularmService; ptr(port: string, entitySelector: string, propertySelector: string, propertyTypeTypeSelector: string, component: Type, configuration?: any): AngularmService; dpr(port: string, component: Type, configuration?: any): AngularmService; pr(port: string, entitySelector: string, propertySelector: string, propertyTypeTypeSelector: string, component: Type, configuration?: any): AngularmService; der(port: string, component: Type, configuration?: any): AngularmService; er(port: string, entitySelector: string, component: Type, configuration?: any): AngularmService; } export declare let et: (singular: string, plural: string, tags?: any, ...propertyTypes: PropertyType[]) => EntityType; export declare let entityType: (singular: string, plural: string, tags?: any, ...propertyTypes: PropertyType[]) => EntityType; export declare let mem: (entityType: EntityType) => InMemoryDAO; export declare let memoryDAO: (entityType: EntityType) => InMemoryDAO;