import { Event } from '../event.js'; import { PropertyEvent } from '../property_event.js'; import { RemoteDevice } from '../remote_device.js'; import { OcaAgent } from './OcaAgent.js'; /** * Control aggregator. See **[AES70-1(Control Aggregation)]** for the normative * specification of **OcaGroup** semantics. * @extends OcaAgent * @class OcaGroup */ export declare class OcaGroup extends OcaAgent { /** * Event that is emitted whenever a value-setting operation returns a status * other than OK. NOTE. This is an ordinary event that causes a normal * Notification message to be emitted. The OCP.1 protocol defines a special * type of Notification PDU called **'Exception'**, but that PDU type is only * used to signal cancellation of a subscription. This **GroupException** * event uses the normal Notification PDU type, which is called **'Event'**. * @member OcaGroup#OnGroupException {Event} */ OnGroupException: Event; /** * This event is emitted whenever Members changes. */ OnMembersChanged: PropertyEvent; /** * This event is emitted whenever GroupControllerONo changes. */ OnGroupControllerONoChanged: PropertyEvent; /** * This event is emitted whenever AggregationRule changes. */ OnAggregationRuleChanged: PropertyEvent; /** * This event is emitted whenever SaturationRule changes. */ OnSaturationRuleChanged: PropertyEvent; constructor(objectNumber: number, device: RemoteDevice); /** * Gets the list of Group members. * * @method OcaGroup#GetMembers * @returns {Promise} * A promise which resolves to a single value of type ``number[]``. */ GetMembers(): Promise; /** * Sets the list of Group members. * * @method OcaGroup#SetMembers * @param {number[]} Members * * @returns {Promise} */ SetMembers(Members: number[]): Promise; /** * Adds a Member to the Group. * * @method OcaGroup#AddMember * @param {number} Member * * @returns {Promise} */ AddMember(Member: number): Promise; /** * Removes a Member from the Group. * * @method OcaGroup#RemoveMember * @param {number} Member * * @returns {Promise} */ RemoveMember(Member: number): Promise; /** * Gets the Group Controller object number. * * @method OcaGroup#GetGroupControllerONo * @returns {Promise} * A promise which resolves to a single value of type ``number``. */ GetGroupControllerONo(): Promise; /** * Sets the Group Controller object number. * * @method OcaGroup#SetGroupControllerONo * @param {number} ONo * * @returns {Promise} */ SetGroupControllerONo(ONo: number): Promise; /** * Gets the value of the **AggregationRule** property. * * @method OcaGroup#GetAggregationRule * @returns {Promise} * A promise which resolves to a single value of type ``string``. */ GetAggregationRule(): Promise; /** * Sets the value of the **AggregationRule** property. * * @method OcaGroup#SetAggregationRule * @param {string} Rule * * @returns {Promise} */ SetAggregationRule(Rule: string): Promise; /** * Gets the value of the **SaturationRule** property. * * @method OcaGroup#GetSaturationRule * @returns {Promise} * A promise which resolves to a single value of type ``string``. */ GetSaturationRule(): Promise; /** * Sets the value of the **SaturationRule** property. * * @method OcaGroup#SetSaturationRule * @param {string} Rule * * @returns {Promise} */ SetSaturationRule(Rule: string): Promise; }