--- /dev/null
+<?php
+/**
+ * An interface for all customers
+ *
+ * @author Roland Haeder <roland __NOSPAM__ [at] __REMOVE_ME__ mxchange [dot] org>
+ * @version 0.1
+ */
+interface Customer extends FrameworkInterface {
+ /**
+ * Adds a contract to the customer's list
+ *
+ * @param $contractInstance A valid instance to WorksContract
+ * @return void
+ */
+ function addNewWorksContract (WorksContract $contractInstance);
+
+ /**
+ * Signs a works contract.
+ *
+ * @param $contractInstance A valid instance to WorksContract
+ * @param $partnerInstance An instance the other
+ * contract partner
+ * @return void
+ * @throws NullPointerException If an instance variable
+ * is null
+ * @throws NoObjectException If an instance variable
+ * is not an object
+ * @throws MissingMethodException If a required method was
+ * not found in $contractInstance
+ * @throws InvalidContractPartnerException If the in $contractInstance
+ * set contract partner is
+ * not the expected
+ */
+ function signContract (WorksContract $contractInstance, ContractPartner $partnerInstance);
+
+ /**
+ * Withdraw from a signed contract
+ *
+ * @param $contractInstance A valid instance to WorksContract
+ * @return void
+ */
+ function withdrawFromContract (WorksContract $contractInstance);
+}
+
+// [EOF]
+?>