import { Entity, EntityRepository } from '../entity'; import { EntityEvent, EventBus, EventBusSubscription, EventBusSubscriptionOptions, EventDispatcher, EventStore } from '../event'; import 'reflect-metadata'; export declare const subscribe: (options?: EventBusSubscriptionOptions) => (target: any, propertyKey: string | symbol) => void; export declare function onEvent(target: any, propertyKey: string | symbol): void; export declare const SERIALIZABLE_TYPES: { [key: string]: Function; }; export declare function serializable(typeConstructor: Function): void; export declare class WrapperEntity extends Entity { id: string; constructor(id: string, delegate: any, appliers: ((target: any, event: EntityEvent) => void)[]); } export declare class DecoratedEntityRepository implements EntityRepository { private readonly eventDispatcher; private readonly eventStore; constructor(eventDispatcher: EventDispatcher, eventStore: EventStore); load(construct: { new (...arg: any[]): any; }, id: string, ...additionalConstArgs: any[]): Promise; } export declare class DecoratedEventBus implements EventBus { private readonly eventBus; constructor(eventBus: EventBus); subscribe(listener: (event: EntityEvent, isReplaying?: boolean) => void, options?: EventBusSubscriptionOptions): EventBusSubscription; emit(event: {}): void; }