/// <reference path="./sigApi.ApiBase.d.ts" />
/// <reference path="./sigApi.Station.d.ts" />

declare namespace SigApi {
    interface ApiStationManager extends ApiBase {
        /**
         * Gets the status of the station
         * 
         * @param {number} stationId the identity of the station
         * 
         * @returns {number} the station status
         */
        getStationStatus(stationId: number): number
        /**
         * Gets the status of the station as text
         * 
         * @param {number} stationId the identity of the station
         * 
         * @returns {string} the station status as string
         */
        getStationStatusAsString(stationId: number): string
        /**
         * Checks if it is running in the offline preview
         * 
         * @returns {boolean} A boolean if it runs in the offline preview
         */
        isInOfflinePreview(): boolean
        /**
         * Returns a Station Object
         * 
         * @param {number} stationId the identity of the station
         * @returns {Station|null}
         */
        getStation(stationId: number): Station | null
        /**
         * Returns an Array of Stations Objects
         * 
         * @returns {Station[]} a List of all Stations 
         */
        getStationList(): Station[]
        /**
         * Function to check if parameter object is a instanceof Station.
         * This function can be used without importing the type Station to be used with the instanceof operator.
         * @param {*} object Any object to type check
         * @returns {boolean} Returns true if parameter object is instanceof Station, else false
         */
        instanceofStation(object: any): boolean
    }
}
