import { IEvent } from './interfaces'; declare const INTERNAL_EVENTS: unique symbol; declare const IS_AUTO_COMMIT_ENABLED: unique symbol; export declare abstract class AggregateRoot { [IS_AUTO_COMMIT_ENABLED]: boolean; private readonly [INTERNAL_EVENTS]; set autoCommit(value: boolean); get autoCommit(): boolean; publish(event: T): Promise; publishAll(event: T[]): Promise; commit(): Promise; uncommit(): void; getUncommittedEvents(): EventBase[]; loadFromHistory(history: EventBase[]): Promise; apply(event: T, isFromHistory?: boolean): Promise; protected getEventHandler(event: T): Function | undefined; protected getEventName(event: any): string; } export {};