package ru.landgrafhomyak.db.skeleton1.api

public interface ObjectOperations<@Suppress("unused") UE : Any?> {
	public fun interface ImplementationsProvider<UE> {
		public fun provideStatementImplementations_databaseType(scope: Scope<UE>)

		public interface Scope<RUNTIME_TYPE> {
			@Suppress("ERROR_SUPPRESSION", "BOUNDS_NOT_ALLOWED_IF_BOUNDED_BY_TYPE_PARAMETER", "INCONSISTENT_TYPE_PARAMETER_BOUNDS")
			public fun <OPERATIONS, OPERATIONS_UNBOUND> addImplementation(
				key: DriverMetainfo<*, *, *, *, *, *, *, *, *, OPERATIONS_UNBOUND>, type: OPERATIONS
			) where OPERATIONS_UNBOUND : ObjectOperations<*>,
					OPERATIONS : ObjectOperations<RUNTIME_TYPE>,
					OPERATIONS : OPERATIONS_UNBOUND
		}
	}
}