import 'reflect-metadata'; import { ChronicleClassOrPropertyDecorator } from '../../types/propertyDecoratorMetadata.js'; import type { UniqueOptions } from './UniqueOptions.js'; interface UniqueMetadata { name?: string; message?: string; /** Normalized event sequence identifiers; omitted means every event sequence. */ eventSequences?: string[]; } /** * Marks an event class as unique per event source, or an event property as unique across event sources. * The optional name defaults to the class or property name. Like the .NET attribute, this decorator * does not offer ignore-casing; use a fluent constraint for case-insensitive uniqueness. * @param name - Optional shared constraint name. * @param message - Optional fixed violation message. * @returns A class or public instance field decorator. */ export declare function unique(name?: string, message?: string): ChronicleClassOrPropertyDecorator; /** * Marks an event class as unique per event source, or an event property as unique across event sources, * optionally applying the constraint only to selected event sequences. * @param options - The constraint name, message and event sequences. * @returns A class or public instance field decorator. */ export declare function unique(options: UniqueOptions): ChronicleClassOrPropertyDecorator; /** Gets the unique constraint declared on an event class, if present. */ export declare function getUniqueEventMetadata(type: Function): UniqueMetadata | undefined; /** Gets the unique constraint declared on an event property, if present. */ export declare function getUniquePropertyMetadata(type: Function, property: string): UniqueMetadata | undefined; export {}; //# sourceMappingURL=unique.d.ts.map