import { DeferrableType } from '../metadata/types/DeferrableType';

/**
 * Arguments for UniqueMetadata class.
 */
export interface UniqueMetadataArgs {
	/**
	 * Class to which index is applied.
	 */
	target: Function | string;

	/**
	 * Unique constraint name.
	 */
	name?: string;

	/**
	 * Columns combination to be unique.
	 */
	columns?: ((object?: any) => any[] | { [key: string]: number }) | string[];

	/**
	 * Indicate if unique constraints can be deferred.
	 */
	deferrable?: DeferrableType;
}
