import type { ListenerSignature, UAMethod } from "node-opcua-address-space-base"; import type { LocalizedText, LocalizedTextLike } from "node-opcua-data-model"; import type { UAAcknowledgeableCondition_Base } from "node-opcua-nodeset-ua"; import type { UATwoStateVariableEx } from "../../ua_two_state_variable_ex.js"; import type { ConditionSnapshot } from "./condition_snapshot.js"; import type { UAConditionEvents, UAConditionEx } from "./ua_condition_ex.js"; export interface UAAcknowledgeableConditionHelper { autoConfirmBranch(branch: ConditionSnapshot, comment: LocalizedTextLike): void; acknowledgeAndAutoConfirmBranch(branch: ConditionSnapshot, comment: string | LocalizedTextLike | LocalizedText): void; } export interface UAAcknowledgeableConditionEvents extends UAConditionEvents { acknowledged: (eventId: Buffer | null, comment: LocalizedText, branch: ConditionSnapshot) => void; confirmed: (eventId: Buffer | null, comment: LocalizedText, branch: ConditionSnapshot) => void; } export interface UAAcknowledgeableConditionEx< T extends UAAcknowledgeableConditionEvents & ListenerSignature = UAAcknowledgeableConditionEvents > extends UAAcknowledgeableCondition_Base, UAAcknowledgeableConditionHelper, UAConditionEx { enabledState: UATwoStateVariableEx; ackedState: UATwoStateVariableEx; confirmedState?: UATwoStateVariableEx; acknowledge: UAMethod; confirm?: UAMethod; }