import type { Byte, UInt32 } from "node-opcua-basic-types";
import type { NodeId } from "node-opcua-nodeid";
import type { DataType } from "node-opcua-variant";
import type { DTSubscriptionDiagnostics } from "./dt_subscription_diagnostics";
import type { UABaseDataVariable, UABaseDataVariable_Base } from "./ua_base_data_variable";
/**
 * |                |                                                            |
 * |----------------|------------------------------------------------------------|
 * |namespace       |http://opcfoundation.org/UA/                                |
 * |nodeClass       |VariableType                                                |
 * |typedDefinition |SubscriptionDiagnosticsType i=2172                          |
 * |dataType        |ExtensionObject                                             |
 * |dataType Name   |DTSubscriptionDiagnostics i=874                             |
 * |value rank      |-1                                                          |
 * |isAbstract      |false                                                       |
 */
export interface UASubscriptionDiagnostics_Base<T extends DTSubscriptionDiagnostics> extends UABaseDataVariable_Base<T, DataType.ExtensionObject> {
    sessionId: UABaseDataVariable<NodeId, DataType.NodeId>;
    subscriptionId: UABaseDataVariable<UInt32, DataType.UInt32>;
    priority: UABaseDataVariable<Byte, DataType.Byte>;
    publishingInterval: UABaseDataVariable<number, DataType.Double>;
    maxKeepAliveCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    maxLifetimeCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    maxNotificationsPerPublish: UABaseDataVariable<UInt32, DataType.UInt32>;
    publishingEnabled: UABaseDataVariable<boolean, DataType.Boolean>;
    modifyCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    enableCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    disableCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    republishRequestCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    republishMessageRequestCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    republishMessageCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    transferRequestCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    transferredToAltClientCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    transferredToSameClientCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    publishRequestCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    dataChangeNotificationsCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    eventNotificationsCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    notificationsCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    latePublishRequestCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    currentKeepAliveCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    currentLifetimeCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    unacknowledgedMessageCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    discardedMessageCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    monitoredItemCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    disabledMonitoredItemCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    monitoringQueueOverflowCount: UABaseDataVariable<UInt32, DataType.UInt32>;
    nextSequenceNumber: UABaseDataVariable<UInt32, DataType.UInt32>;
    eventQueueOverflowCount: UABaseDataVariable<UInt32, DataType.UInt32>;
}
export interface UASubscriptionDiagnostics<T extends DTSubscriptionDiagnostics> extends UABaseDataVariable<T, DataType.ExtensionObject>, UASubscriptionDiagnostics_Base<T> {
}
