using Debug.LightweightIocContainer.FactoryGenerator.Samples.Interfaces; namespace Debug.LightweightIocContainer.FactoryGenerator.Samples.Factories; public interface ISampleClassFactory { ISampleClass Create(); T Create() where T : ISampleClass; Task CreateAsync(); ISampleClass Create(string name); T Create(U param1, V param2) where T : ISampleClass where U : class, new() where V : struct; Task CreateAsync(U parameter) where T : ISampleClass where U : class; ISampleClass Create(Task task) where T : Task; Task Create(ISampleClass? sampleClass) where T : class, ISampleClass; ISampleClass? Create(int id); void ClearMultitonInstance() where T : ISampleClass; }