import { PropertyAccessor } from '@cratis/fundamentals'; import { ChildAdditionEntry } from './AddChildBuilder.js'; import { IAddBuilder } from './IAddBuilder.js'; import { IAddChildBuilder } from './IAddChildBuilder.js'; import { ICompositeKeyBuilder } from './ICompositeKeyBuilder.js'; import { IJoinBuilder } from './IJoinBuilder.js'; import { ISetBuilder } from './ISetBuilder.js'; import { ISubtractBuilder } from './ISubtractBuilder.js'; /** * Accumulated property mapping for a join clause. */ export interface JoinEntry { on: string; properties: Record; key: string; children: ChildAdditionEntry[]; } /** * Concrete implementation of {@link IJoinBuilder}. * @template TReadModel - The read model type. * @template TEvent - The event type. */ export declare class JoinBuilder implements IJoinBuilder { readonly entry: JoinEntry; /** @inheritdoc */ on(readModelPropertyAccessor: PropertyAccessor): this; /** @inheritdoc */ set(readModelPropertyAccessor: PropertyAccessor): ISetBuilder>; /** @inheritdoc */ usingKey(keyAccessor: PropertyAccessor): this; /** @inheritdoc */ usingKeyFromContext(contextPropertyName: string): this; /** @inheritdoc */ usingParentKey(_keyAccessor: PropertyAccessor): this; /** @inheritdoc */ usingParentKeyFromContext(_contextPropertyName: string): this; /** @inheritdoc */ usingCompositeKey(builderCallback: (builder: ICompositeKeyBuilder) => void): this; /** @inheritdoc */ usingParentCompositeKey(_builderCallback: (builder: ICompositeKeyBuilder) => void): this; /** @inheritdoc */ usingConstantKey(value: string): this; /** @inheritdoc */ usingConstantParentKey(_value: string): this; /** @inheritdoc */ increment(readModelPropertyAccessor: PropertyAccessor): this; /** @inheritdoc */ decrement(readModelPropertyAccessor: PropertyAccessor): this; /** @inheritdoc */ add(readModelPropertyAccessor: PropertyAccessor): IAddBuilder; /** @inheritdoc */ subtract(readModelPropertyAccessor: PropertyAccessor): ISubtractBuilder; /** @inheritdoc */ count(readModelPropertyAccessor: PropertyAccessor): this; /** @inheritdoc */ addChild(targetPropertyAccessor: (model: TReadModel) => readonly TChildModel[] | null | undefined, builderCallback: (builder: IAddChildBuilder & TEvent) => void): this; /** @inheritdoc */ addChild(targetPropertyAccessor: (model: TReadModel) => readonly TChildModel[] | null | undefined, eventPropertyAccessor: PropertyAccessor): this; /** @inheritdoc */ addChild(targetPropertyAccessor: PropertyAccessor, eventPropertyAccessorOrBuilderCallback: PropertyAccessor | ((builder: IAddChildBuilder) => void)): this; /** @inheritdoc */ setThisValue(): ISetBuilder; } //# sourceMappingURL=JoinBuilder.d.ts.map