<?php

interface Publish {

    /**
     * Publish the file with the given file ID
     *
     * @param int $fileId ID of the file to be published
     *
     * @return void
     */
    public function publish($fileId);

    /**
     * Unpublish the file with the given file ID
     *
     * @param int $fileId ID of the file to be unpublished
     *
     * @return void
     */
    public function unpublish($fileId);


    /**
     * Fetch the publication status for the file with the given ID
     *
     * @param int $fileId the ID of the file to check
     *
     * @return int 1 if the file has been published,
     *             0 if the file has yet to be published,
     *             -1 if the file is in a pending state,
     *             2 if the source is unreachable (disconnected)
     */
    public function getPublishStatus($fileId);

}