Other answers have already pointed out why it doesn't make sense to have a constructor declaration on an interface. But from your question, I'm guessing that you are probably looking for the abstract factory pattern.
To give an example based on your question: you say that you would like to somehow declare that an 'engine' must be passed to the constructor. You can do this by declaring a separate interface for a construction service like this:
public interface IGadgetFactory
{
IGadget CreateGadget(Engine engine);
}
Any code which must create IGadget
instances can then use an IGadgetFactory
instance instead of calling any constructors directly.