import { type INamespace, type ISessionContext, type ListenerSignature, type UAEventType, type UAMethod, type UAObject, type UAProperty, type UAVariable } from "node-opcua-address-space-base"; import { type ByteString, type UAString, type UInt16 } from "node-opcua-basic-types"; import { LocalizedText, type LocalizedTextLike } from "node-opcua-data-model"; import { NodeId } from "node-opcua-nodeid"; import type { UAConditionVariable } from "node-opcua-nodeset-ua"; import { StatusCode } from "node-opcua-status-code"; import { TimeZoneDataType } from "node-opcua-types"; import { DataType, type VariantLike, type VariantOptions } from "node-opcua-variant"; import type { ConditionInfoOptions } from "../../api/interfaces/alarms_and_conditions/condition_info_i.js"; import type { ConditionSnapshot } from "../../api/interfaces/alarms_and_conditions/condition_snapshot.js"; import type { InstantiateConditionOptions } from "../../api/interfaces/alarms_and_conditions/instantiate_condition_options.js"; import type { UAConditionEvents, UAConditionEx } from "../../api/interfaces/alarms_and_conditions/ua_condition_ex.js"; import type { ISetStateOptions } from "../../api/interfaces/i_set_state_options.js"; import type { UATwoStateVariableEx } from "../../api/ua_two_state_variable_ex.js"; import type { AddressSpacePrivate } from "../address_space_private.js"; import { UABaseEventImplBase } from "./ua_base_event_impl.js"; /** * * └─ ConditionType * ├─ DialogConditionType * └─ AcknowledgeableConditionType * └─ AlarmConditionType * ├─ LimitAlarmType * │ ├─ ExclusiveLimitAlarmType * │ │ ├─ ExclusiveLevelAlarmType * │ │ ├─ ExclusiveDeviationAlarmType * │ │ └─ ExclusiveRateOfChangeAlarmType * │ └─ NonExclusiveLimitAlarmType * │ ├─ NonExclusiveLevelAlarmType * │ ├─ NonExclusiveDeviationAlarmType * │ └─ NonExclusiveRateOfChangeAlarmType * └─ DiscreteAlarmType * ├─ OffNormalAlarmType * │ ├─ SystemOffNormalAlarmType * │ │ └─ CertificateExpirationAlarmType * │ └─ TripAlarmType * */ /** @internal */ export declare class UAConditionImplBase = UAConditionEvents> extends UABaseEventImplBase implements UAConditionEx { /** * The condition's own child nodes, on top of the ones UABaseEventImplBase declares. * Installed by the address space, not by this constructor - hence `declare`. */ readonly conditionClassId: UAProperty; readonly conditionClassName: UAProperty; readonly conditionSubClassId?: UAProperty; readonly conditionSubClassName?: UAProperty; readonly conditionName: UAProperty; readonly branchId: UAProperty; readonly retain: UAProperty; readonly supportsFilteredRetain: UAProperty; readonly enabledState: UATwoStateVariableEx; readonly quality: UAConditionVariable; readonly lastSeverity: UAConditionVariable; readonly comment: UAConditionVariable; readonly clientUserId: UAProperty; readonly disable: UAMethod; readonly enable: UAMethod; readonly addComment: UAMethod; readonly conditionRefresh: UAMethod; readonly conditionRefresh2: UAMethod; static defaultSeverity: number; static typeDefinition: NodeId; static instantiate(namespace: INamespace, conditionTypeId: NodeId | string | UAEventType, options: InstantiateConditionOptions, data?: Record): UAConditionImpl; static install_condition_refresh_handle(addressSpace: AddressSpacePrivate): void; /** * * Helper method to handle condition methods that takes a branchId and a comment * */ static with_condition_method(inputArguments: VariantLike[], context: ISessionContext, callback: (err: Error | null, result?: { statusCode: StatusCode; }) => void, inner_func: (eventId: ByteString, comment: LocalizedText, branch: ConditionSnapshot, conditionNode: UAConditionImpl) => StatusCode): void; private _branch0; private _previousRetainFlag; private _branches; /** * @private */ initialize(): void; /** * @private */ post_initialize(): void; getBranchCount(): number; getBranches(): ConditionSnapshot[]; getBranchIds(): NodeId[]; /** */ createBranch(): ConditionSnapshot; /** */ deleteBranch(branch: ConditionSnapshot): void; /** */ getEnabledState(): boolean; /** */ getEnabledStateAsString(): string; /** * returns {StatusCode} StatusCodes.Good if successful or BadConditionAlreadyEnabled/BadConditionAlreadyDisabled * @private */ _setEnabledState(requestedEnabledState: boolean, options?: ISetStateOptions): StatusCode; /** * * @private */ setEnabledState(requestedEnabledState: boolean, options?: ISetStateOptions): StatusCode; /** */ setReceiveTime(time: Date): void; /** */ setLocalTime(time: TimeZoneDataType): void; /** */ setTime(time: Date): void; _assert_valid(): void; /** */ conditionOfNode(): UAObject | UAVariable | null; /** * Raise a Instance Event * (see also UAObject#raiseEvent to raise a transient event) * @param branch the condition branch to raise * @param renewEventId true if event Id of the condition branch should be renewed */ raiseConditionEvent(branch: ConditionSnapshot, renewEventId: boolean): void; /** * * @param conditionInfo {ConditionInfo} * */ raiseNewCondition(conditionInfo: ConditionInfoOptions): void; raiseNewBranchState(branch: ConditionSnapshot): void; /** */ currentBranch(): ConditionSnapshot; _resend_conditionEvents(): 0 | 1; /** * @private */ _raiseAuditConditionCommentEvent(sourceName: string, conditionEventId: Buffer, comment: LocalizedTextLike): void; findBranchForEventId(eventId: Buffer | null): ConditionSnapshot | null; protected evaluateConditionsAfterEnabled(): void; } /** @internal */ export type UAConditionImpl = UAConditionImplBase; /** @internal */ export declare const UAConditionImpl: typeof UAConditionImplBase;