<?php

namespace Comitium5\DesignerBundle\Model\Interfaces\LibraryJS;

use Comitium5\DesignerBundle\Model\Interfaces\DateTimeInterface;
use Comitium5\DesignerBundle\Model\Interfaces\SelfContentTypeInterface;
use Comitium5\DesignerBundle\Model\Interfaces\TmpIdentifierInterface;

/**
 * Interface LibraryJSInterface.
 *
 * @author Sergio de Candelario <sergio@bab-soft.com>
 */
interface LibraryJSInterface extends
    DateTimeInterface,
    SelfContentTypeInterface,
    TmpIdentifierInterface
{
    /**
     * @return mixed
     */
    public function getName();

    /**
     * @param $name
     *
     * @return mixed
     */
    public function setName($name);

    /**
     * @return mixed
     */
    public function getVersion();

    /**
     * @param $version
     *
     * @return mixed
     */
    public function setVersion($version);

    /**
     * @return mixed
     */
    public function getURL();

    /**
     * @param $url
     *
     * @return mixed
     */
    public function setURL($url);

    /**
     * @param $file
     *
     * @return mixed
     */
    public function setSource($file);

    /**
     * @return mixed
     */
    public function getSource();

    /**
     * @return mixed
     */
    public function isExternal();

    /**
     * @param $isExternal
     *
     * @return mixed
     */
    public function setExternal($isExternal);
}
