/** * @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 "../../source/interfaces/state_machine/ua_shelved_state_machine_ex"; import type { UATransitionEx } from "../../source/interfaces/state_machine/ua_transition_ex"; import { UAStateMachineImpl } from "./finite_state_machine"; 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 { static promote(object: UAObject): UAShelvedStateMachineEx; } export type UAShelvedStateMachineExImpl = UAShelvedStateMachineExImplBase & UAShelvedStateMachineEx; export declare const UAShelvedStateMachineExImpl: new () => UAShelvedStateMachineExImpl; export declare function _clear_timer_if_any(shelvingState: UAShelvedStateMachineExImpl): void;