import { Logger } from 'winston';
import { IEventStoreBuilder, IEventTypes } from '@dolittle/sdk.events';
import { TenantId } from '@dolittle/sdk.execution';
import { IAggregateRootTypes } from '../IAggregateRootTypes';
import { IAggregates } from './IAggregates';
import { IAggregatesBuilder } from './IAggregatesBuilder';
/**
 * Represents an implementation of {@link IAggregatesBuilder}.
 */
export declare class AggregatesBuilder extends IAggregatesBuilder {
    private readonly _aggregateRootTypes;
    private readonly _eventTypes;
    private readonly _eventStoreBuilder;
    private readonly _logger;
    /**
     * Initialises a new instance of the {@link AggregatesBuilder} class.
     * @param {IAggregateRootTypes} _aggregateRootTypes - For aggregate root types resolution.
     * @param {IEventTypes} _eventTypes - For event types resolution.
     * @param {IEventStoreBuilder} _eventStoreBuilder - The builder to use for getting the event store for a specific tenant.
     * @param {Logger} _logger - For logging.
     */
    constructor(_aggregateRootTypes: IAggregateRootTypes, _eventTypes: IEventTypes, _eventStoreBuilder: IEventStoreBuilder, _logger: Logger);
    /** @inheritdoc */
    forTenant(tenant: TenantId): IAggregates;
}
//# sourceMappingURL=AggregatesBuilder.d.ts.map