import { Guid, IEquatable } from '@dolittle/rudiments'; import { Constructor } from '@dolittle/types'; import { IClientBuildResults, IModelBuilder } from '@dolittle/sdk.common'; import { IEventTypes, ScopeId } from '@dolittle/sdk.events'; import { IProjection } from '../IProjection'; import { ProjectionId } from '../ProjectionId'; import { IProjectionBuilder } from './IProjectionBuilder'; import { IProjectionBuilderForReadModel } from './IProjectionBuilderForReadModel'; /** * Represents an implementation of {@link IProjectionBuilder}. */ export declare class ProjectionBuilder extends IProjectionBuilder implements IEquatable { private readonly _projectionId; private readonly _modelBuilder; private _scopeId; private _readModelTypeOrInstance?; private _builder?; /** * Initializes a new instance of {@link ProjectionBuilder}. * @param {ProjectionId} _projectionId - The unique identifier of the projection to build for. * @param {IModelBuilder} _modelBuilder - For binding this projection builder and read model to its identifier. */ constructor(_projectionId: ProjectionId, _modelBuilder: IModelBuilder); /** @inheritdoc */ inScope(scopeId: string | ScopeId | Guid): IProjectionBuilder; /** @inheritdoc */ forReadModel(typeOrInstance: T | Constructor): IProjectionBuilderForReadModel; /** @inheritdoc */ equals(other: any): boolean; /** * Builds the projection. * @param {IEventTypes} eventTypes - For event types resolution. * @param {IClientBuildResults} results - For keeping track of build results. * @returns {IProjection | undefined} The built projection if successful. */ build(eventTypes: IEventTypes, results: IClientBuildResults): IProjection | undefined; } //# sourceMappingURL=ProjectionBuilder.d.ts.map