An abstract interface should not require any configuration to use
Configuration should be done behind the scenes using an external resource like a property file, and should be done internally before anyone uses the interface.
An user of an abstract interface should not have to go through more than one function call in a chain to “find” any component they need
Remember that indirection is evil and only ends up adding to the cognitive complexity necessary to use something. You can find examples of this in normal GUIs when you are forced to go through a huge list of complicated steps across multiple interface to complete one task. A wizard is an example of an abstraction over these complicated steps, and it basically provides one access point to your task. The same idea applies to abstract interfaces: If the user has to call more than one function just to access a component or complete a task then you haven’t helped them at all.