import { Constructor, PropertyAccessor } from '@cratis/fundamentals'; import { IUniqueConstraintBuilder } from './IUniqueConstraintBuilder.js'; /** Captured definition of a unique constraint event entry. */ export interface UniqueConstraintEventEntry { eventTypeId: string; properties: string[]; } /** Captured definition of a unique constraint. */ export interface UniqueConstraintCapture { name?: string; eventDefinitions: UniqueConstraintEventEntry[]; ignoreCasing: boolean; /** The most recently specified removal event type (retained for legacy capture consumers). */ removedWithEventTypeId?: string; /** Distinct removal event types in registration order. */ removedWithEventTypeIds?: string[]; message?: string; } /** * Implements {@link IUniqueConstraintBuilder}, capturing the unique constraint definition * for later serialization and registration with the Kernel. */ export declare class UniqueConstraintBuilder implements IUniqueConstraintBuilder { private readonly _capture; constructor(capture: UniqueConstraintCapture); /** @inheritdoc */ withName(name: string): IUniqueConstraintBuilder; /** @inheritdoc */ on(eventType: Constructor, ...properties: PropertyAccessor[]): IUniqueConstraintBuilder; /** @inheritdoc */ ignoreCasing(): IUniqueConstraintBuilder; /** @inheritdoc */ removedWith(eventType: Function): IUniqueConstraintBuilder; /** @inheritdoc */ withMessage(message: string): IUniqueConstraintBuilder; /** @inheritdoc */ withMessageFrom(messageProvider: () => string): IUniqueConstraintBuilder; } //# sourceMappingURL=UniqueConstraintBuilder.d.ts.map