/**
 * Used to inject transaction's repository into the method wrapped with @Transaction decorator.
 */
export interface TransactionRepositoryMetadataArgs {
	/**
	 * Target class on which decorator is used.
	 */
	readonly target: Function;

	/**
	 * Method on which decorator is used.
	 */
	readonly methodName: string;

	/**
	 * Index of the parameter on which decorator is used.
	 */
	readonly index: number;

	/**
	 * Type of the repository class (Repository, TreeRepository or MongoRepository) or custom repository class.
	 */
	readonly repositoryType: Function;

	/**
	 * Argument of generic Repository<T> class if it's not custom repository class.
	 */
	readonly entityType?: Function;
}
