interface IAdminGarden {
    /* ============ Write ============ */
    function initialize(
        address _reserveAsset,
        IBabController _controller,
        address _creator,
        string memory _name,
        string memory _symbol,
        uint256[] calldata _gardenParams,
        uint256 _initialContribution,
        bool[] memory _publicGardenStrategistsStewards
    ) external payable;

    function makeGardenPublic() external;

    function transferCreatorRights(address _newCreator, uint8 _index) external;

    function addExtraCreators(address[4] memory _newCreators) external;

    function setPublicRights(bool _publicStrategist, bool _publicStewards) external;

    function delegateVotes(address _token, address _address) external;

    function updateCreators(address _newCreator, address[4] memory _newCreators) external;

    function updateGardenParams(uint256[11] memory _newParams) external;
}
/**
 * @title IAdminGarden
 *
 * Interface for amdin functions of the Garden
 */
function initialize(
    address _reserveAsset,
    IBabController _controller,
    address _creator,
    string memory _name,
    string memory _symbol,
    uint256[] calldata _gardenParams,
    uint256 _initialContribution,
    bool[] memory _publicGardenStrategistsStewards
) external payable;

/* ============ Write ============ */