/** * @module node-opcua-address-space.AlarmsAndConditions */ import type { UAMethod, UAObject, UAProperty } from "node-opcua-address-space-base"; import type { UAState } from "node-opcua-nodeset-ua"; import { DataType } from "node-opcua-variant"; import type { UAShelvedStateMachineEx } from "../../api/interfaces/state_machine/ua_shelved_state_machine_ex.js"; import type { UATransitionEx } from "../../api/interfaces/state_machine/ua_transition_ex.js"; import { UAStateMachineImpl } from "./finite_state_machine.js"; export interface UAShelvedStateMachineHelper { _timer: NodeJS.Timeout | null; _shelvedTime: Date; _unshelvedTime: Date; _duration: number; } export interface UAShelvedStateMachineHelper2 extends UAShelvedStateMachineHelper { unshelveTime: UAProperty; unshelved: UAState; timedShelved: UAState; oneShotShelved: UAState; unshelvedToTimedShelved: UATransitionEx; unshelvedToOneShotShelved: UATransitionEx; timedShelvedToUnshelved: UATransitionEx; timedShelvedToOneShotShelved: UATransitionEx; oneShotShelvedToUnshelved: UATransitionEx; oneShotShelvedToTimedShelved: UATransitionEx; timedShelve: UAMethod; timedShelve2?: UAMethod; unshelve: UAMethod; unshelve2?: UAMethod; oneShotShelve: UAMethod; oneShotShelve2?: UAMethod; } export declare class UAShelvedStateMachineExImplBase extends UAStateMachineImpl implements UAShelvedStateMachineEx { /** * The states, transitions and methods the address space installs as child nodes, plus the * shelving timer this class keeps. None is assigned by the constructor - hence `declare`, * which emits nothing. */ readonly unshelveTime: UAProperty; readonly unshelved: UAState; readonly timedShelved: UAState; readonly oneShotShelved: UAState; readonly unshelvedToTimedShelved: UATransitionEx; readonly unshelvedToOneShotShelved: UATransitionEx; readonly timedShelvedToUnshelved: UATransitionEx; readonly timedShelvedToOneShotShelved: UATransitionEx; readonly oneShotShelvedToUnshelved: UATransitionEx; readonly oneShotShelvedToTimedShelved: UATransitionEx; readonly timedShelve: UAMethod; readonly timedShelve2?: UAMethod; readonly unshelve: UAMethod; readonly unshelve2?: UAMethod; readonly oneShotShelve: UAMethod; readonly oneShotShelve2?: UAMethod; _timer: NodeJS.Timeout | null; _shelvedTime: Date; _unshelvedTime: Date; _duration: number; static promote(object: UAObject): UAShelvedStateMachineEx; } export type UAShelvedStateMachineExImpl = UAShelvedStateMachineExImplBase; export declare const UAShelvedStateMachineExImpl: typeof UAShelvedStateMachineExImplBase; export declare function _clear_timer_if_any(shelvingState: UAShelvedStateMachineExImpl): void;