<?php

namespace FR\Interfaces;

interface RemoteHubInterface extends ValidateInterface, \JsonSerializable, ArrayUnserializable, ArraySerializable
{
    /**
     * @return int|null
     */
    public function getId();
    /**
     * @param $id
     *
     */
    public function setId($id);

    /**
     * @return int|null
     */
    public function getTargetState();

    /**
     * @param $state
     *
     */
    public function setTargetState($state);

    /**
     * @return string
     */
    public function getHostKey(): string;

    /**
     * @param string $hostkey
     */
    public function setHostkey($hostkey);

    /**
     * @return string
     */
    public function getUiName(): string;

    /**
     * @param string $uiName
     */
    public function setUiName($uiName);

    /**
     * @return string
     */
    public function getRole(): string;

    /**
     * @param string $role
     */
    public function setRole($role);

    /**
     * @return TransportInterface
     */
    public function getTransport(): TransportInterface;

    /**
     * @param TransportInterface $transport
     */
    public function setTransport(TransportInterface $transport);

    /**
     * @return string
     */
    public function getApiUrl(): string;

    /**
     * @param string $apiUrl
     */
    public function setApiUrl($apiUrl);
}
