import { Constructor } from '@dolittle/types'; import { EventSourceIdLike } from '@dolittle/sdk.events'; import { AggregateRoot } from '../AggregateRoot'; import { IAggregateOf } from '../IAggregateOf'; import { IAggregateRootOperations } from '../IAggregateRootOperations'; /** * Defines a system that can get aggregate roots scoped to a tenant. */ export declare abstract class IAggregates { /** * Gets the {@link IAggregateRootOperations} for the {@link TAggregateRoot} class. * @param {Constructor} type - The type of the aggregate to get. * @param {EventSourceIdLike} eventSourceId - The {@link EventSourceId} of the aggregate to get. * @returns {IAggregateRootOperations} The aggregate root operations to perform actions on. * @template TAggregateRoot The type of the aggregate root. */ abstract get(type: Constructor, eventSourceId: EventSourceIdLike): IAggregateRootOperations; /** * Gets the {@link IAggregateOf} for the {@link TAggregateRoot} class.. * @param {Constructor} type - The type of the aggregate to get. * @returns {IAggregateOf} The aggregate root to get aggregate root operations from. * @template TAggregateRoot The type of the aggregate root. */ abstract of(type: Constructor): IAggregateOf; } //# sourceMappingURL=IAggregates.d.ts.map