import { PropertyAccessor } from '@cratis/fundamentals'; import { IChildrenBuilder } from './IChildrenBuilder.js'; import { INestedBuilder } from './INestedBuilder.js'; import { IProjectionBuilderFor } from './IProjectionBuilderFor.js'; import type { IFromAllBuilder } from './IFromAllBuilder.js'; import { ChildrenDefinitionLike, ContractEventType, ProjectionBuilderCore } from './ProjectionBuilderCore.js'; /** * Concrete implementation of {@link IProjectionBuilderFor} that accumulates projection * configuration and produces a Chronicle-compatible projection definition payload. * @template TReadModel - The read model type this projection produces. */ export declare class ProjectionBuilderFor extends ProjectionBuilderCore> implements IProjectionBuilderFor { private _eventSequenceId; private _containerName; private _rewindable; private _active; private _subscribesToAllEvents; private _variantIdentity; private _variantKey; private readonly _enteringEventTypes; constructor(); /** @inheritdoc */ fromAll(builderCallback: (builder: IFromAllBuilder) => void): this; /** @inheritdoc */ fromEventSequence(eventSequenceId: string): this; /** @inheritdoc */ containerName(name: string): this; /** @inheritdoc */ notRewindable(): this; /** @inheritdoc */ passive(): this; /** @inheritdoc */ variantOf(identity: Function, keyAccessor: PropertyAccessor): this; /** @inheritdoc */ entersOn(eventType: Function, key?: string): this; /** * Gets the variant declaration this builder accumulated, if any. * @returns The variant declaration, or undefined when this projection is not a variant. */ getVariantDeclaration(): { identity: Function; key: string; enteringEventTypes: ContractEventType[]; } | undefined; /** @inheritdoc */ children(targetPropertyAccessor: PropertyAccessor, builderCallback: (builder: IChildrenBuilder) => void): this; /** @inheritdoc */ nested(targetPropertyAccessor: PropertyAccessor, builderCallback: (builder: INestedBuilder) => void): this; /** Names of children and nested members configured by declarative builders. */ getSubobjectDefinitions(): { children: Record; nested: Record; }; /** * Builds the contract-compatible projection definition payload. * @param identifier - The projection identifier. * @param readModelName - The read model container name. * @returns The projection definition object ready to send to the kernel. */ build(identifier: string, readModelName: string): Record; /** * Gets the set of read model properties referenced by configured mappings. * @returns Unique read model property names used by from/join/fromEvery mappings. */ getMappedReadModelProperties(): string[]; /** * Computes a stable, deterministic ISO timestamp from the projection definition content, * excluding the LastUpdated field itself. */ private computeStableLastUpdated; } //# sourceMappingURL=ProjectionBuilderFor.d.ts.map