<?php

/**
 * OpenKM, Open Knowledge Management System S.L.  (http://www.openkm.com)
 * Copyright (c) 2006-2015
 * <p>
 * No bytes were intentionally harmed during the development of this application.
 * <p>
 * This program is commercial software; you can use it under the terms of the
 * EULA - OpenKM SDK End User License Agreement as published by OpenKM Knowledge Management System S.L.
 * <p>
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * EULA - OpenKM SDK End User License Agreement for more details:
 * http://docs.openkm.com/kcenter/view/licenses/eula-openkm-sdk-end-user-license-agreement.html
 */

namespace openkm\definition;

/**
 * BasePropertyGroup
 * 
 * @author sochoa
 */
interface BasePropertyGroup {

    public function addPropertyGroup($uuid, $grpName, $properties = []);

    public function removePropertyGroup($uuid, $grpName);

    public function getPropertyGroups($uuid);

    public function getAllPropertyGroups();
    
    public function getPropertyGroupForm($grpName);
    
    public function getPropertyGroupFormByNode($uuid, $grpName);
    
    public function setPropertyGroupProperties($uuid, $grpName, $properties = []);

    public function hasPropertyGroup($uuid, $grpName);       
    
    public function getPropertyGroupsByVersion($uuid, $versionName);
    
    public function getRegisteredPropertyGroupDefinition();
    
    public function getPropertyGroupSuggestions($uuid, $grpName, $propName);    
                    
    public function registerPropertyGroupDefinition($content, $name);
    
    public function getPropertyGroupProperties($uuid,$grpName);    
    
    public function getPropertyGroupPropertiesByVersion($uuid, $grpName, $versionName);
    
    public function getPropertyGroupByVersionForm($uuid, $grpName, $versionName);
    
    public function getPropertyGroup($grpName);   
}

?>
