import { EventType, EventTypeMap, ScopeId } from '@dolittle/sdk.events'; import { Constructor } from '@dolittle/types'; import { ProjectionCopies } from './Copies/ProjectionCopies'; import { DeleteReadModelInstance } from './DeleteReadModelInstance'; import { EventSelector } from './EventSelector'; import { IProjection } from './IProjection'; import { KeySelector } from './KeySelector'; import { ProjectionCallback } from './ProjectionCallback'; import { ProjectionContext } from './ProjectionContext'; import { ProjectionId } from './ProjectionId'; import { ProjectionAlias } from './ProjectionAlias'; /** * Represents an implementation of {@link IProjection}. * @template T The type of the projection read model. */ export declare class Projection extends IProjection { readonly projectionId: ProjectionId; readonly readModelTypeOrInstance: Constructor | T; readonly scopeId: ScopeId; private readonly _eventMap; readonly copies: ProjectionCopies; readonly alias: ProjectionAlias | undefined; /** @inheritdoc */ readonly readModelType: Constructor | undefined; /** @inheritdoc */ readonly initialState: T; /** @inheritdoc */ readonly events: Iterable; /** @inheritdoc */ readonly hasAlias: boolean; /** * Initializes a new instance of {@link Projection}. * @param {ProjectionId} projectionId - The unique identifier for the projection. * @param {Constructor|T} readModelTypeOrInstance - The read model type or instance produced by the projection. * @param {ScopeId} scopeId - The identifier of the scope the projection is in. * @param {EventTypeMap<[ProjectionCallback, KeySelector]>} _eventMap - The events with respective callbacks and keyselectors used by the projection. * @param {ProjectionCopies} copies - The read model copies specification for the projection. * @param {ProjectionAlias | undefined} alias - The optional projection alias. */ constructor(projectionId: ProjectionId, readModelTypeOrInstance: Constructor | T, scopeId: ScopeId, _eventMap: EventTypeMap<[ProjectionCallback, KeySelector]>, copies: ProjectionCopies, alias?: ProjectionAlias | undefined); /** @inheritdoc */ on(readModel: T, event: any, eventType: EventType, context: ProjectionContext): Promise; } //# sourceMappingURL=Projection.d.ts.map