declare namespace SigApi {
    interface Alarm {
        /**
         * Gets the state of the Alarm (0=LO, 255=QUIT, 1-254=HI)
         * 
         * @returns {number} The state of the Alarm 
         */
        getState(): number
        /**
         * Gets the VarNo of the Alarm
         * 
         * @returns {number} The VarNo of the Alarm
         */
        getVarNo(): number
        /**
         * Gets the group of the Alarm
         * 
         * @returns {number} The group of the Alarm
         */
        getGroup(): number
        /**
         * Gets the number of times the alarm occurred
         * 
         * @returns {number} The number of times the alarm occurred
         */
        getNum(): number
        /**
         * Gets the type of the Alarm if it is a HotAlarm (1 = HotAlarmTimeLast, 2 = HotAlarmPrioHighest, 4 = HotAlarmTimeFirst, 8 = HotAlarmPrioLowest, default = 0)
         * 
         * @returns {number} The type of the Alarm if it is a HotAlarm
         */
        getType(): number
        /**
         * Gets the alarmnumber of the Alarm
         * alarmnumber is the value of the Client 'Config' from associated alarm object in LC2
         * 
         * @returns {number} The alarmnumber of the Alarm
         */
        getAlarmNr(): number
        /**
         * Gets the time at which the alarm first occurred
         * 
         * @returns {number} The time in the Sigmatek time format
         */
        getTimeHiFirst(): number
        /**
         * Gets the date at which the alarm first occurred
         * 
         * @returns {number} The date in the Sigmatek date format
         */
        getDateHiFirst(): number
        /**
         * Gets the time at which the alarm last occurred
         * 
         * @returns {number} The time in the Sigmatek time format
         */
        getTimeHiLast(): number
        /**
         * Gets the date at which the alarm last occurred
         * 
         * @returns {number} The date in the Sigmatek date format
         */
        getDateHiLast(): number
        /**
         * Gets the time on that the Alarm was gone
         * 
         * @returns {number} The time in the Sigmatek time format
         */
        getTimeLo(): number
        /**
         * Gets the date on that the Alarm was gone
         * 
         * @returns {number} The date in the Sigmatek date format
         */
        getDateLo(): number
        /**
         * Gets the time at which the alarm was acknowledged
         * 
         * @returns {number} The time in the Sigmatek time format
         */
        getTimeQuit(): number
        /**
         * Gets the date at which the alarm was acknowledged
         * 
         * @returns {number} The date in the Sigmatek date format
         */
        getDateQuit(): number
        /**
         * Gets the parameter at the specified index of the alarm
         * 
         * parameter is the value of the Client 'Para1'(index=1), 'Para2'(index=2) or 'Para3'(index=3) from associated alarm object in LC2
         *
         * @param {number} [index=1] the index of the parameter
         * 
         * @returns {number} the parameter at the specified index of the Alarm
         */
        getParam(index?: number): number
        /**
         * Gets the parameter1 of the Alarm
         * parameter1 is the value of the Client 'Para1' from associated alarm object in LC2
         *
         * @returns {number} The parameter 1 of the Alarm
         */
        getParam1(): number
        /**
         * Gets the string parameter at the specified index of the alarm
         * 
         * @param {number} [index=1] 
         * @returns {string|undefined}
         */
        getParamString(index?: number): string | undefined
        /**
         * Gets the data/infomation of the Alarm as string
         * 
         * @returns {string} the data/infomation of the Alarm as string
         */
        getDataAsStr(): string
        /**
         * Returns true when the alarm is quit
         * 
         * @returns {boolean} true if the alarm was quit, otherwise false
         */
        isQuit(): boolean
        /**
         * Returns the alarm as text using the passed 'textProp'
         * 
         * @param {string} [textProp='text1'] the textProp used to create the alarm text (textProp = 'text1', 'text2' or 'text3')
         * 
         * @returns {string} the alarm as text using the passed 'textProp'
         */
        getAlarmText(textProp?: string): string
        /**
         * Returns the alarm as text using the passed 'textProp'
         * 
         * @param {string} [textProp='text1'] the textProp used to create the alarm text (textProp = 'text1', 'text2' or 'text3')
         * @param {number} [language] the index of the preferred language
         * @returns {Promise} resolve({string})
         */
        getAlarmTextAsync(textProp?: string, language?: number): Promise<string>
        /**
         * Gets the number of parameters
         * 
         * @returns {number} the number of parameters
         */
        getNumPara(): number
        /**
         * Gets the parameter property, defined by propertyName, at the specified paramIndex of the EventJournalAlarmEntry.
         * @param {number} paramIndex index of the parameter
         * range of paramIndex: 
         * * 1 to this.nopara
         * @param {string} propertyName name of the parameter property
         * defined propertyName:
         * * value: the value of the property
         * * varid: the varId of the property
         * * valueFormated: the formated value of the property
         * * unitText: the unitText of the property or undefined
         * @returns {number|string|undefined} The parameter at the specified index of the EventJournalEntry
         */
        getParamProperty(
            paramIndex: number,
            propertyName: string
        ): number | string | undefined
        /**
         * Gets the alarm config id
         * 
         * @returns {number|null}
         */
        getAlarmConfigId(): number | null
    }
}
