import { StorableEvent } from '.';
import { AggregateRoot } from './aggregate-root';
import { StoreEventBus } from './store-event-bus';
export interface Constructor<T> {
    new (...args: any[]): T;
}
export declare class StoreEventPublisher<EventBase extends StorableEvent = StorableEvent> {
    private readonly eventBus;
    constructor(eventBus: StoreEventBus);
    mergeClassContext<T extends Constructor<AggregateRoot<EventBase>>>(metaType: T): T;
    mergeObjectContext<T extends AggregateRoot<EventBase>>(object: T): T;
}
