module /**
 * The controller adapter in the modular design is the one who puts
 * the controller in communication with its current environment.
 *
 * This is used in conjunction with the **generate-interface** command
 * to generate client versions of the controllers, the ones that talk with the adapter
 * and the adapter talks with the layer available in its current environment.
 */ export interface ControllerAdapter { param controller param name param config param args invoke ( controller , name , config ? , ... args ) : Promise < any > ; param controller param name param config param args query ? ( controller , name , config ? , ... args ) : Promise < any > ; }