contract ConfigInterface {
        address public owner;
        mapping(address => bool) admins;
        mapping(bytes32 => address) addressMap;
        mapping(bytes32 => bool) boolMap;
        mapping(bytes32 => bytes32) bytesMap;
        mapping(bytes32 => uint256) uintMap;

        /// @notice setConfigAddress sets configuration `_key` to `_val`
        /// @param _key The key name of the configuration.
        /// @param _val The value of the configuration.
        /// @return Whether the configuration setting was successful or not.
        function setConfigAddress(bytes32 _key, address _val) returns(bool success);

        /// @notice setConfigBool sets configuration `_key` to `_val`
        /// @param _key The key name of the configuration.
        /// @param _val The value of the configuration.
        /// @return Whether the configuration setting was successful or not.
        function setConfigBool(bytes32 _key, bool _val) returns(bool success);

        /// @notice setConfigBytes sets configuration `_key` to `_val`
        /// @param _key The key name of the configuration.
        /// @param _val The value of the configuration.
        /// @return Whether the configuration setting was successful or not.
        function setConfigBytes(bytes32 _key, bytes32 _val) returns(bool success);

        /// @notice setConfigUint `_key` to `_val`
        /// @param _key The key name of the configuration.
        /// @param _val The value of the configuration.
        /// @return Whether the configuration setting was successful or not.
        function setConfigUint(bytes32 _key, uint256 _val) returns(bool success);

        /// @notice getConfigAddress gets configuration `_key`'s value
        /// @param _key The key name of the configuration.
        /// @return The configuration value
        function getConfigAddress(bytes32 _key) returns(address val);

        /// @notice getConfigBool gets configuration `_key`'s value
        /// @param _key The key name of the configuration.
        /// @return The configuration value
        function getConfigBool(bytes32 _key) returns(bool val);

        /// @notice getConfigBytes gets configuration `_key`'s value
        /// @param _key The key name of the configuration.
        /// @return The configuration value
        function getConfigBytes(bytes32 _key) returns(bytes32 val);

        /// @notice getConfigUint gets configuration `_key`'s value
        /// @param _key The key name of the configuration.
        /// @return The configuration value
        function getConfigUint(bytes32 _key) returns(uint256 val);

        /// @notice addAdmin sets `_admin` as configuration admin
        /// @return Whether the configuration setting was successful or not.
        function addAdmin(address _admin) returns(bool success);

        /// @notice removeAdmin removes  `_admin`'s rights
        /// @param _admin The key name of the configuration.
        /// @return Whether the configuration setting was successful or not.
        function removeAdmin(address _admin) returns(bool success);

}
/// @title DigixDAO Contract Interfaces
function getConfigUint(bytes32 _key) returns(uint256 val);
/// @notice getConfigUint gets configuration `_key`'s value
/// @param _key The key name of the configuration.
/// @return The configuration value