## API Report File for "@zwave-js/core"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts

/// <reference types="node" />

import { DeepPartial } from '@zwave-js/shared';
import type { Format } from 'logform';
import type { JsonlDB } from '@alcalzone/jsonl-db';
import type { JSONObject } from '@zwave-js/shared';
import type { Logger } from 'winston';
import type { TransformableInfo } from 'logform';
import type Transport from 'winston-transport';
import type { TypedClassDecorator } from '@zwave-js/shared';
import { TypedEventEmitter } from '@zwave-js/shared';
import winston from 'winston';

// Warning: (ae-missing-release-tag) "actuatorCCs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const actuatorCCs: readonly CommandClasses[];

// Warning: (ae-missing-release-tag) "allCCs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const allCCs: readonly CommandClasses[];

// Warning: (ae-missing-release-tag) "applicationCCs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const applicationCCs: readonly CommandClasses[];

// Warning: (ae-missing-release-tag) "ApplicationNodeInformation" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ApplicationNodeInformation {
    // (undocumented)
    genericDeviceClass: number;
    // (undocumented)
    specificDeviceClass: number;
    // (undocumented)
    supportedCCs: CommandClasses[];
}

// Warning: (ae-missing-release-tag) "assertValueID" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function assertValueID(param: Record<any, any>): asserts param is ValueID;

// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "assertZWaveError" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function assertZWaveError<T>(valueOrFactory: T, options?: AssertZWaveErrorOptions): T extends () => PromiseLike<any> ? Promise<void> : void;

// Warning: (ae-missing-release-tag) "AssertZWaveErrorOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AssertZWaveErrorOptions {
    // (undocumented)
    context?: unknown;
    // (undocumented)
    errorCode?: ZWaveErrorCodes;
    // (undocumented)
    messageMatches?: string | RegExp;
}

// Warning: (ae-missing-release-tag) "authHomeIdFromDSK" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function authHomeIdFromDSK(dsk: Buffer): Buffer;

// Warning: (ae-missing-release-tag) "CacheBackedMap" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export class CacheBackedMap<K extends string | number, V> implements Map<K, V> {
    // (undocumented)
    [Symbol.iterator]: () => IterableIterator<[K, V]>;
    // (undocumented)
    get [Symbol.toStringTag](): string;
    constructor(cache: JsonlDB<any>, cacheKeys: CacheBackedMapKeys<K>);
    // (undocumented)
    clear(): void;
    // (undocumented)
    delete(key: K): boolean;
    // (undocumented)
    entries: () => IterableIterator<[K, V]>;
    // (undocumented)
    forEach: (callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any) => void;
    // (undocumented)
    get: (key: K) => V | undefined;
    // (undocumented)
    has: (key: K) => boolean;
    // (undocumented)
    keys: () => IterableIterator<K>;
    // (undocumented)
    set(key: K, value: V): this;
    // (undocumented)
    get size(): number;
    // (undocumented)
    values: () => IterableIterator<V>;
}

// Warning: (ae-missing-release-tag) "CacheBackedMapKeys" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface CacheBackedMapKeys<K extends string | number> {
    prefix: string;
    suffixDeserializer: (suffix: string) => K | undefined;
    suffixSerializer: (suffix: K) => string;
}

// Warning: (ae-missing-release-tag) "CacheMetadata" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface CacheMetadata extends Pick<ValueID, "endpoint" | "property" | "propertyKey"> {
    // (undocumented)
    metadata: ValueMetadata;
}

// Warning: (ae-missing-release-tag) "CacheValue" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface CacheValue extends Pick<ValueID, "endpoint" | "property" | "propertyKey"> {
    // Warning: (ae-forgotten-export) The symbol "SerializedValue" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    value: SerializedValue;
}

// Warning: (ae-internal-missing-underscore) The name "channelPadding" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export const channelPadding: string;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "CommandClasses" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export enum CommandClasses {
    // (undocumented)
    "Alarm Sensor" = 156,
    // (undocumented)
    "Alarm Silence" = 157,
    // (undocumented)
    "All Switch" = 39,
    // (undocumented)
    "Anti-Theft Unlock" = 126,
    // (undocumented)
    "Anti-Theft" = 93,
    // (undocumented)
    "Application Capability" = 87,
    // (undocumented)
    "Application Status" = 34,
    // (undocumented)
    "Association Command Configuration" = 155,
    // (undocumented)
    "Association Group Information" = 89,
    // (undocumented)
    "Authentication Media Write" = 162,
    // (undocumented)
    "Barrier Operator" = 102,
    // (undocumented)
    "Basic Tariff Information" = 54,
    // (undocumented)
    "Basic Window Covering" = 80,
    // (undocumented)
    "Binary Sensor" = 48,
    // (undocumented)
    "Binary Switch" = 37,
    // (undocumented)
    "Binary Toggle Switch" = 40,
    // (undocumented)
    "Central Scene" = 91,
    // (undocumented)
    "Climate Control Schedule" = 70,
    // (undocumented)
    "Color Switch" = 51,
    // (undocumented)
    "Controller Replication" = 33,
    // (undocumented)
    "CRC-16 Encapsulation" = 86,
    // (undocumented)
    "Demand Control Plan Configuration" = 58,
    // (undocumented)
    "Demand Control Plan Monitor" = 59,
    // (undocumented)
    "Device Reset Locally" = 90,
    // (undocumented)
    "Door Lock Logging" = 76,
    // (undocumented)
    "Door Lock" = 98,
    // (undocumented)
    "Energy Production" = 144,
    // (undocumented)
    "Entry Control" = 111,
    // (undocumented)
    "Firmware Update Meta Data" = 122,
    // (undocumented)
    "Generic Schedule" = 163,
    // (undocumented)
    "Geographic Location" = 140,
    // (undocumented)
    "Grouping Name" = 123,
    // (undocumented)
    "HRV Control" = 57,
    // (undocumented)
    "HRV Status" = 55,
    // (undocumented)
    "Humidity Control Mode" = 109,
    // (undocumented)
    "Humidity Control Operating State" = 110,
    // (undocumented)
    "Humidity Control Setpoint" = 100,
    // (undocumented)
    "Inclusion Controller" = 116,
    // (undocumented)
    "IP Association" = 92,
    // (undocumented)
    "IP Configuration" = 154,
    // (undocumented)
    "IR Repeater" = 160,
    // (undocumented)
    "Manufacturer Proprietary" = 145,
    // (undocumented)
    "Manufacturer Specific" = 114,
    // (undocumented)
    "Meter Table Configuration" = 60,
    // (undocumented)
    "Meter Table Monitor" = 61,
    // (undocumented)
    "Meter Table Push Configuration" = 62,
    // (undocumented)
    "Move To Position Window Covering" = 81,
    // (undocumented)
    "Multi Channel Association" = 142,
    // (undocumented)
    "Multi Channel" = 96,
    // (undocumented)
    "Multi Command" = 143,
    // (undocumented)
    "Multilevel Sensor" = 49,
    // (undocumented)
    "Multilevel Switch" = 38,
    // (undocumented)
    "Multilevel Toggle Switch" = 41,
    // (undocumented)
    "Network Management Basic Node" = 77,
    // (undocumented)
    "Network Management Inclusion" = 52,
    // (undocumented)
    "Network Management Installation and Maintenance" = 103,
    // (undocumented)
    "Network Management Primary" = 84,
    // (undocumented)
    "Network Management Proxy" = 82,
    // (undocumented)
    "No Operation" = 0,
    // (undocumented)
    "Node Naming and Location" = 119,
    // (undocumented)
    "Node Provisioning" = 120,
    // (undocumented)
    "Prepayment Encapsulation" = 65,
    // (undocumented)
    "Pulse Meter" = 53,
    // (undocumented)
    "Rate Table Configuration" = 72,
    // (undocumented)
    "Rate Table Monitor" = 73,
    // (undocumented)
    "Remote Association Activation" = 124,
    // (undocumented)
    "Remote Association Configuration" = 125,
    // (undocumented)
    "Scene Activation" = 43,
    // (undocumented)
    "Scene Actuator Configuration" = 44,
    // (undocumented)
    "Scene Controller Configuration" = 45,
    // (undocumented)
    "Schedule Entry Lock" = 78,
    // (undocumented)
    "Screen Attributes" = 147,
    // (undocumented)
    "Screen Meta Data" = 146,
    // (undocumented)
    "Security 2" = 159,
    // (undocumented)
    "Security Mark" = 61696,
    // (undocumented)
    "Sensor Configuration" = 158,
    // (undocumented)
    "Simple AV Control" = 148,
    // (undocumented)
    "Sound Switch" = 121,
    // (undocumented)
    "Support/Control Mark" = 239,
    // (undocumented)
    "Tariff Table Configuration" = 74,
    // (undocumented)
    "Tariff Table Monitor" = 75,
    // (undocumented)
    "Thermostat Fan Mode" = 68,
    // (undocumented)
    "Thermostat Fan State" = 69,
    // (undocumented)
    "Thermostat Mode" = 64,
    // (undocumented)
    "Thermostat Operating State" = 66,
    // (undocumented)
    "Thermostat Setback" = 71,
    // (undocumented)
    "Thermostat Setpoint" = 67,
    // (undocumented)
    "Time Parameters" = 139,
    // (undocumented)
    "Transport Service" = 85,
    // (undocumented)
    "User Code" = 99,
    // (undocumented)
    "Wake Up" = 132,
    // (undocumented)
    "Window Covering" = 106,
    // (undocumented)
    "Z-Wave Plus Info" = 94,
    // (undocumented)
    "Z-Wave Protocol" = 1,
    // (undocumented)
    "Z/IP 6LoWPAN" = 79,
    // (undocumented)
    "Z/IP Gateway" = 95,
    // (undocumented)
    "Z/IP Naming and Location" = 104,
    // (undocumented)
    "Z/IP ND" = 88,
    // (undocumented)
    "Z/IP Portal" = 97,
    // (undocumented)
    "Z/IP" = 35,
    // (undocumented)
    "Association" = 133,
    // (undocumented)
    "Authentication" = 161,
    // (undocumented)
    "Basic" = 32,
    // (undocumented)
    "Battery" = 128,
    // (undocumented)
    "Clock" = 129,
    // (undocumented)
    "Configuration" = 112,
    // (undocumented)
    "Hail" = 130,
    // (undocumented)
    "Indicator" = 135,
    // (undocumented)
    "Irrigation" = 107,
    // (undocumented)
    "Language" = 137,
    // (undocumented)
    "Lock" = 118,
    // (undocumented)
    "Mailbox" = 105,
    // (undocumented)
    "Meter" = 50,
    // (undocumented)
    "Notification" = 113,
    // (undocumented)
    "Powerlevel" = 115,
    // (undocumented)
    "Prepayment" = 63,
    // (undocumented)
    "Proprietary" = 136,
    // (undocumented)
    "Protection" = 117,
    // (undocumented)
    "Schedule" = 83,
    // (undocumented)
    "Security" = 152,
    // (undocumented)
    "Supervision" = 108,
    // (undocumented)
    "Time" = 138,
    // (undocumented)
    "Version" = 134
}

// Warning: (ae-missing-release-tag) "CommandClassInfo" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface CommandClassInfo {
    isControlled: boolean;
    isSupported: boolean;
    secure: boolean;
    version: number;
}

// Warning: (ae-missing-release-tag) "computeCMAC" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function computeCMAC(message: Buffer, key: Buffer): Buffer;

// Warning: (ae-missing-release-tag) "computeMAC" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function computeMAC(authData: Buffer, key: Buffer, iv?: Buffer): Buffer;

// Warning: (ae-missing-release-tag) "computeNoncePRK" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function computeNoncePRK(senderEI: Buffer, receiverEI: Buffer): Buffer;

// Warning: (ae-missing-release-tag) "computePRK" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function computePRK(ecdhSharedSecret: Buffer, pubKeyA: Buffer, pubKeyB: Buffer): Buffer;

// Warning: (ae-missing-release-tag) "ConfigurationMetadata" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ConfigurationMetadata extends ValueMetadataAny {
    // (undocumented)
    allowManualEntry?: boolean;
    // (undocumented)
    default?: ConfigValue;
    // (undocumented)
    format?: ConfigValueFormat;
    // (undocumented)
    info?: string;
    // (undocumented)
    isAdvanced?: boolean;
    // (undocumented)
    isFromConfig?: boolean;
    // (undocumented)
    max?: ConfigValue;
    // (undocumented)
    min?: ConfigValue;
    // (undocumented)
    name?: string;
    // (undocumented)
    noBulkSupport?: boolean;
    // (undocumented)
    requiresReInclusion?: boolean;
    // (undocumented)
    states?: Record<number, string>;
    // (undocumented)
    unit?: string;
    // (undocumented)
    valueSize?: number;
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "ConfigValue" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type ConfigValue = number | Set<number>;

// Warning: (ae-missing-release-tag) "ConfigValueFormat" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export enum ConfigValueFormat {
    // (undocumented)
    BitField = 3,
    // (undocumented)
    Enumerated = 2,
    // (undocumented)
    SignedInteger = 0,
    // (undocumented)
    UnsignedInteger = 1
}

// Warning: (ae-missing-release-tag) "CONTROL_CHAR_WIDTH" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const CONTROL_CHAR_WIDTH = 2;

// Warning: (ae-missing-release-tag) "CONTROLLER_LABEL" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const CONTROLLER_LABEL = "CNTRLR";

// Warning: (ae-missing-release-tag) "ControllerCapabilityFlags" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ControllerCapabilityFlags {
    // (undocumented)
    NoNodesIncluded = 32,
    // (undocumented)
    OnOtherNetwork = 2,
    // (undocumented)
    Secondary = 1,
    // (undocumented)
    SISPresent = 4,
    // (undocumented)
    SUC = 16,
    // (undocumented)
    WasRealPrimary = 8
}

// Warning: (ae-missing-release-tag) "ControllerLogContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ControllerLogContext = ControllerSelfLogContext | ControllerNodeLogContext | ControllerValueLogContext;

// Warning: (ae-missing-release-tag) "ControllerLogger" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ControllerLogger extends ZWaveLoggerBase<ControllerLogContext> {
    constructor(loggers: ZWaveLogContainer);
    interviewStage(node: Interviewable): void;
    interviewStart(node: Interviewable): void;
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    logNode(nodeId: number, message: string, level?: "debug" | "verbose" | "warn" | "error"): void;
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    logNode(nodeId: number, options: LogNodeOptions): void;
    metadataUpdated(args: LogValueArgs<ValueID>): void;
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    print(message: string, level?: "verbose" | "warn" | "error"): void;
    value(change: "added", args: LogValueArgs<ValueAddedArgs>): void;
    // (undocumented)
    value(change: "updated", args: LogValueArgs<ValueUpdatedArgs>): void;
    // (undocumented)
    value(change: "removed", args: LogValueArgs<ValueRemovedArgs>): void;
    // (undocumented)
    value(change: "notification", args: LogValueArgs<ValueNotificationArgs>): void;
    // (undocumented)
    valueEventPrefixes: Readonly<{
        added: "+";
        updated: "~";
        removed: "-";
        notification: "!";
    }>;
}

// Warning: (ae-missing-release-tag) "ControllerNodeLogContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ControllerNodeLogContext = LogContext<"controller"> & NodeLogContext & {
    endpoint?: number;
    direction: string;
};

// Warning: (ae-missing-release-tag) "ControllerSelfLogContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ControllerSelfLogContext = LogContext<"controller"> & {
    type: "controller";
};

// Warning: (ae-missing-release-tag) "ControllerValueLogContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ControllerValueLogContext = LogContext<"controller"> & ValueLogContext & {
    direction?: string;
    change?: "added" | "updated" | "removed" | "notification";
    internal?: boolean;
};

// Warning: (ae-missing-release-tag) "CRC16_CCITT" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function CRC16_CCITT(data: Buffer, startValue?: number): number;

// Warning: (ae-missing-release-tag) "createDefaultTransportFormat" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function createDefaultTransportFormat(colorize: boolean, shortTimestamps: boolean): Format;

// Warning: (ae-missing-release-tag) "createLoggerFormat" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function createLoggerFormat(channel: string): Format;

// Warning: (ae-missing-release-tag) "createLogMessagePrinter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function createLogMessagePrinter(shortTimestamps: boolean): Format;

// Warning: (ae-forgotten-export) The symbol "Constructor" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "createReflectionDecorator" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function createReflectionDecorator<TBase extends Object, TArgs extends any[], TValue, TConstructor extends Constructor<TBase> = Constructor<TBase>>({ name, valueFromArgs, constructorLookupKey, }: CreateReflectionDecoratorOptions<TBase, TArgs, TValue, TConstructor>): ReflectionDecorator<TBase, TArgs, TValue, TConstructor>;

// Warning: (ae-missing-release-tag) "CreateReflectionDecoratorOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface CreateReflectionDecoratorOptions<TBase extends Object, TArgs extends any[], TValue, TConstructor extends Constructor<TBase> = Constructor<TBase>> {
    constructorLookupKey?: false | ((target: TConstructor, ...args: TArgs) => string);
    name: string;
    valueFromArgs: (...args: TArgs) => TValue;
}

// Warning: (ae-missing-release-tag) "createReflectionDecoratorPair" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function createReflectionDecoratorPair<TBase extends Object, TSuperArgs extends [any], TSubArgs extends [any], TConstructor extends Constructor<TBase> = Constructor<TBase>>({ superName, subName, }: CreateReflectionDecoratorPairOptions): ReflectionDecoratorPair<TBase, TSuperArgs, TSubArgs, TConstructor>;

// Warning: (ae-missing-release-tag) "CreateReflectionDecoratorPairOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface CreateReflectionDecoratorPairOptions {
    subName: string;
    superName: string;
}

// Warning: (ae-missing-release-tag) "createSimpleReflectionDecorator" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function createSimpleReflectionDecorator<TBase extends Object, TArgs extends [any], TConstructor extends Constructor<TBase> = Constructor<TBase>>({ name, }: CreateSimpleReflectionDecoratorOptions): SimpleReflectionDecorator<TBase, TArgs, TConstructor>;

// Warning: (ae-missing-release-tag) "CreateSimpleReflectionDecoratorOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface CreateSimpleReflectionDecoratorOptions {
    name: string;
}

// Warning: (ae-missing-release-tag) "createValuelessReflectionDecorator" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function createValuelessReflectionDecorator<TBase extends Object>({ name, }: CreateValuelessReflectionDecoratorOptions): ValuelessReflectionDecorator<TBase>;

// Warning: (ae-missing-release-tag) "CreateValuelessReflectionDecoratorOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface CreateValuelessReflectionDecoratorOptions {
    name: string;
}

// Warning: (ae-missing-release-tag) "DataDirection" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type DataDirection = "inbound" | "outbound" | "none";

// Warning: (ae-missing-release-tag) "DataRate" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type DataRate = 9600 | 40000 | 100000;

// Warning: (tsdoc-malformed-inline-tag) Expecting a TSDoc tag starting with "{@"
// Warning: (tsdoc-escape-right-brace) The "}" character should be escaped using a backslash to avoid confusion with a TSDoc inline tag
// Warning: (ae-missing-release-tag) "dbKeyToValueIdFast" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function dbKeyToValueIdFast(key: string): {
    nodeId: number;
} & ValueID;

// Warning: (ae-missing-release-tag) "decodeX25519KeyDER" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function decodeX25519KeyDER(key: Buffer): Buffer;

// Warning: (ae-missing-release-tag) "decryptAES128CCM" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function decryptAES128CCM(key: Buffer, iv: Buffer, ciphertext: Buffer, additionalData: Buffer, authTag: Buffer): {
    plaintext: Buffer;
    authOK: boolean;
};

// Warning: (ae-missing-release-tag) "decryptAES128OFB" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const decryptAES128OFB: (input: Buffer, key: Buffer, iv: Buffer) => Buffer;

// Warning: (ae-missing-release-tag) "deriveMEI" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function deriveMEI(noncePRK: Buffer): Buffer;

// Warning: (ae-missing-release-tag) "deriveNetworkKeys" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function deriveNetworkKeys(PNK: Buffer): {
    keyCCM: Buffer;
    keyMPAN: Buffer;
    personalizationString: Buffer;
};

// Warning: (ae-missing-release-tag) "deriveTempKeys" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function deriveTempKeys(PRK: Buffer): {
    tempKeyCCM: Buffer;
    tempPersonalizationString: Buffer;
};

// Warning: (ae-missing-release-tag) "deserializeCacheValue" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function deserializeCacheValue(value: SerializedValue): unknown;

// Warning: (ae-missing-release-tag) "directionPrefixPadding" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const directionPrefixPadding: string;

// Warning: (ae-missing-release-tag) "dskFromString" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function dskFromString(dsk: string): Buffer;

// Warning: (ae-missing-release-tag) "dskToString" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function dskToString(dsk: Buffer): string;

// Warning: (ae-missing-release-tag) "DSTInfo" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface DSTInfo {
    // (undocumented)
    dstOffset: number;
    // (undocumented)
    endDate: Date;
    // (undocumented)
    standardOffset: number;
    // (undocumented)
    startDate: Date;
}

// Warning: (ae-missing-release-tag) "Duration" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export class Duration {
    constructor(value: number, unit: DurationUnit);
    static from(input: "default"): Duration;
    // (undocumented)
    static from(input?: Duration | string): Duration | undefined;
    static parseReport(payload?: number): Duration | undefined;
    static parseSet(payload?: number): Duration | undefined;
    static parseString(text: string): Duration | undefined;
    serializeReport(): number;
    serializeSet(): number;
    // (undocumented)
    toJSON(): string | JSONObject;
    // (undocumented)
    toMilliseconds(): number | undefined;
    // (undocumented)
    toString(): string;
    // (undocumented)
    unit: DurationUnit;
    // (undocumented)
    get value(): number;
    set value(v: number);
}

// Warning: (ae-missing-release-tag) "DurationUnit" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type DurationUnit = "seconds" | "minutes" | "unknown" | "default";

// Warning: (ae-missing-release-tag) "encapsulationCCs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const encapsulationCCs: readonly CommandClasses[];

// Warning: (ae-missing-release-tag) "EncapsulationFlags" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum EncapsulationFlags {
    // (undocumented)
    CRC16 = 4,
    // (undocumented)
    None = 0,
    // (undocumented)
    Security = 2,
    // (undocumented)
    Supervision = 1
}

// Warning: (ae-missing-release-tag) "encodeBitMask" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function encodeBitMask(values: readonly number[], maxValue: number, startValue?: number): Buffer;

// Warning: (ae-missing-release-tag) "encodeBoolean" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function encodeBoolean(val: boolean): number;

// Warning: (ae-missing-release-tag) "encodeCCId" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function encodeCCId(ccId: CommandClasses, payload: Buffer, offset?: number): number;

// Warning: (ae-missing-release-tag) "encodeCCList" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function encodeCCList(supportedCCs: readonly CommandClasses[], controlledCCs: readonly CommandClasses[]): Buffer;

// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "encodeFloatWithScale" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function encodeFloatWithScale(value: number, scale: number, override?: {
    size?: number;
    precision?: number;
}): Buffer;

// Warning: (ae-missing-release-tag) "encodeMaybeBoolean" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function encodeMaybeBoolean(val: Maybe<boolean>): number;

// Warning: (ae-missing-release-tag) "encodeNodeInformationFrame" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function encodeNodeInformationFrame(info: NodeInformationFrame): Buffer;

// Warning: (ae-missing-release-tag) "encodeNodeProtocolInfo" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function encodeNodeProtocolInfo(info: NodeProtocolInfo): Buffer;

// Warning: (ae-missing-release-tag) "encodeNodeProtocolInfoAndDeviceClass" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function encodeNodeProtocolInfoAndDeviceClass(info: NodeProtocolInfoAndDeviceClass): Buffer;

// Warning: (ae-missing-release-tag) "encodeNodeUpdatePayload" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function encodeNodeUpdatePayload(nif: NodeUpdatePayload): Buffer;

// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "encodePartial" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function encodePartial(fullValue: number, partialValue: number, bitMask: number): number;

// Warning: (ae-missing-release-tag) "encodeX25519KeyDERPKCS8" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function encodeX25519KeyDERPKCS8(key: Buffer): Buffer;

// Warning: (ae-missing-release-tag) "encodeX25519KeyDERSPKI" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function encodeX25519KeyDERSPKI(key: Buffer): Buffer;

// Warning: (ae-missing-release-tag) "encryptAES128CCM" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function encryptAES128CCM(key: Buffer, iv: Buffer, plaintext: Buffer, additionalData: Buffer, authTagLength: number): {
    ciphertext: Buffer;
    authTag: Buffer;
};

// Warning: (ae-missing-release-tag) "encryptAES128ECB" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function encryptAES128ECB(plaintext: Buffer, key: Buffer): Buffer;

// Warning: (ae-missing-release-tag) "encryptAES128OFB" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const encryptAES128OFB: (input: Buffer, key: Buffer, iv: Buffer) => Buffer;

// Warning: (ae-missing-release-tag) "enumValuesToMetadataStates" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function enumValuesToMetadataStates<T extends Record<string, any>>(enumeration: T, values?: readonly number[]): Record<number, string>;

// Warning: (ae-missing-release-tag) "extractFirmware" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function extractFirmware(rawData: Buffer, format: FirmwareFileFormat): Firmware;

// Warning: (ae-missing-release-tag) "Firmware" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface Firmware {
    // (undocumented)
    data: Buffer;
    // (undocumented)
    firmwareTarget?: number;
}

// Warning: (ae-missing-release-tag) "FirmwareFileFormat" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type FirmwareFileFormat = "aeotec" | "otz" | "ota" | "hex" | "hec" | "gecko" | "bin";

// Warning: (ae-missing-release-tag) "FLiRS" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type FLiRS = false | "250ms" | "1000ms";

// Warning: (ae-missing-release-tag) "formatDate" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function formatDate(date: Date, format: string): string;

// Warning: (ae-missing-release-tag) "generateAuthKey" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function generateAuthKey(networkKey: Buffer): Buffer;

// Warning: (ae-missing-release-tag) "generateEncryptionKey" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function generateEncryptionKey(networkKey: Buffer): Buffer;

// Warning: (ae-missing-release-tag) "getBitMaskWidth" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getBitMaskWidth(mask: number): number;

// Warning: (ae-missing-release-tag) "getCCName" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function getCCName(cc: number): string;

// Warning: (ae-missing-release-tag) "getDefaultDSTInfo" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getDefaultDSTInfo(defaultOffset?: number): DSTInfo;

// Warning: (ae-missing-release-tag) "getDirectionPrefix" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function getDirectionPrefix(direction: DataDirection): "« " | "» " | "  ";

// Warning: (ae-missing-release-tag) "getDSTInfo" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getDSTInfo(now?: Date): DSTInfo;

// Warning: (ae-missing-release-tag) "getErrorSuffix" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function getErrorSuffix(code: ZWaveErrorCodes): string;

// Warning: (ae-missing-release-tag) "getHighestSecurityClass" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function getHighestSecurityClass(securityClasses: SecurityClass[]): SecurityClass;

// Warning: (ae-missing-release-tag) "getIntegerLimits" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function getIntegerLimits(size: 1 | 2 | 3 | 4, signed: boolean): {
    min: number;
    max: number;
};

// Warning: (ae-missing-release-tag) "getLegalRangeForBitMask" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getLegalRangeForBitMask(mask: number, unsigned: boolean): [min: number, max: number];

// Warning: (ae-missing-release-tag) "getMinimumShiftForBitMask" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getMinimumShiftForBitMask(mask: number): number;

// Warning: (ae-missing-release-tag) "getMinIntegerSize" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function getMinIntegerSize(value: number, signed: boolean): 1 | 2 | 4 | undefined;

// Warning: (ae-missing-release-tag) "getNodeTag" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getNodeTag(nodeId: number): string;

// Warning: (ae-missing-release-tag) "getNumericEnumValues" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getNumericEnumValues<T extends Record<string, any>>(enumeration: T): readonly number[];

// Warning: (ae-missing-release-tag) "GraphNode" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class GraphNode<T> {
    constructor(value: T, edges?: Iterable<GraphNode<T>>);
    readonly edges: Set<GraphNode<T>>;
    readonly value: T;
}

// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "guessFirmwareFileFormat" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function guessFirmwareFileFormat(filename: string, rawData: Buffer): FirmwareFileFormat;

// Warning: (ae-missing-release-tag) "highResTimestamp" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function highResTimestamp(): number;

// Warning: (ae-missing-release-tag) "HOMEID_BYTES" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const HOMEID_BYTES = 4;

// Warning: (ae-missing-release-tag) "ICommandClass" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export interface ICommandClass {
    // (undocumented)
    ccCommand?: number;
    // (undocumented)
    ccId: CommandClasses;
    // (undocumented)
    expectsCCResponse(): boolean;
    // (undocumented)
    isExpectedCCResponse(received: ICommandClass): boolean;
    // (undocumented)
    nodeId: number | MulticastDestination;
    // (undocumented)
    serialize(): Buffer;
}

// Warning: (ae-missing-release-tag) "indexDBsByNode" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function indexDBsByNode(databases: JsonlDB[]): Map<number, Set<string>>;

// Warning: (ae-missing-release-tag) "IntegerLimits" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const IntegerLimits: Readonly<{
    UInt8: Readonly<{
        min: 0;
        max: 255;
    }>;
    UInt16: Readonly<{
        min: 0;
        max: 65535;
    }>;
    UInt24: Readonly<{
        min: 0;
        max: 16777215;
    }>;
    UInt32: Readonly<{
        min: 0;
        max: 4294967295;
    }>;
    Int8: Readonly<{
        min: -128;
        max: 127;
    }>;
    Int16: Readonly<{
        min: -32768;
        max: 32767;
    }>;
    Int24: Readonly<{
        min: -8388608;
        max: 8388607;
    }>;
    Int32: Readonly<{
        min: -2147483648;
        max: 2147483647;
    }>;
}>;

// Warning: (ae-missing-release-tag) "Interviewable" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface Interviewable {
    // (undocumented)
    id: number;
    // (undocumented)
    interviewStage: InterviewStage;
}

// Warning: (ae-missing-release-tag) "InterviewStage" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum InterviewStage {
    CommandClasses = 3,
    Complete = 5,
    NodeInfo = 2,
    None = 0,
    OverwriteConfig = 4,
    ProtocolInfo = 1
}

// Warning: (ae-missing-release-tag) "isConsecutiveArray" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function isConsecutiveArray(values: number[]): boolean;

// Warning: (ae-missing-release-tag) "isExtendedCCId" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function isExtendedCCId(ccId: CommandClasses): boolean;

// Warning: (ae-missing-release-tag) "isMessagePriority" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function isMessagePriority(val: unknown): val is MessagePriority;

// Warning: (ae-missing-release-tag) "isRecoverableZWaveError" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function isRecoverableZWaveError(e: unknown): e is ZWaveError;

// Warning: (ae-missing-release-tag) "isRssiError" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function isRssiError(rssi: RSSI): rssi is RssiError;

// Warning: (ae-missing-release-tag) "isSupervisionResult" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function isSupervisionResult(obj: unknown): obj is SupervisionResult;

// Warning: (ae-missing-release-tag) "isTransmissionError" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function isTransmissionError(e: unknown): e is ZWaveError & {
    code: ZWaveErrorCodes.Controller_Timeout | ZWaveErrorCodes.Controller_MessageDropped | ZWaveErrorCodes.Controller_CallbackNOK | ZWaveErrorCodes.Controller_ResponseNOK | ZWaveErrorCodes.Controller_NodeTimeout | ZWaveErrorCodes.Security2CC_CannotDecode;
};

// Warning: (ae-missing-release-tag) "isUnsupervisedOrSucceeded" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function isUnsupervisedOrSucceeded(result: SupervisionResult | undefined): result is undefined | (SupervisionResult & {
    status: SupervisionStatus.Success | SupervisionStatus.Working;
});

// Warning: (ae-missing-release-tag) "isValidDSK" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function isValidDSK(dsk: string): boolean;

// Warning: (ae-missing-release-tag) "isValueID" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function isValueID(param: Record<any, any>): param is ValueID;

// Warning: (ae-missing-release-tag) "isZWaveError" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function isZWaveError(e: unknown): e is ZWaveError;

// Warning: (ae-missing-release-tag) "IVirtualEndpoint" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export interface IVirtualEndpoint {
    // (undocumented)
    getCCVersion(cc: CommandClasses): number;
    // (undocumented)
    readonly index: number;
    // (undocumented)
    readonly node: IVirtualNode;
    // (undocumented)
    readonly nodeId: number | MulticastDestination;
    // (undocumented)
    supportsCC(cc: CommandClasses): boolean;
    // (undocumented)
    readonly virtual: true;
}

// Warning: (ae-missing-release-tag) "IVirtualNode" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export interface IVirtualNode extends IVirtualEndpoint {
    // (undocumented)
    getEndpoint(index: 0): IVirtualEndpoint;
    // (undocumented)
    getEndpoint(index: number): IVirtualEndpoint | undefined;
    // (undocumented)
    getEndpointOrThrow(index: number): IVirtualEndpoint;
    // (undocumented)
    readonly id: number | undefined;
    // (undocumented)
    readonly physicalNodes: readonly IZWaveNode[];
}

// Warning: (ae-missing-release-tag) "IZWaveEndpoint" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export interface IZWaveEndpoint {
    // (undocumented)
    addCC(cc: CommandClasses, info: Partial<CommandClassInfo>): void;
    // (undocumented)
    controlsCC(cc: CommandClasses): boolean;
    // (undocumented)
    getCCs(): Iterable<[ccId: CommandClasses, info: CommandClassInfo]>;
    // (undocumented)
    getCCVersion(cc: CommandClasses): number;
    // (undocumented)
    getNodeUnsafe(): IZWaveNode | undefined;
    // (undocumented)
    readonly index: number;
    // (undocumented)
    isCCSecure(cc: CommandClasses): boolean;
    // (undocumented)
    readonly nodeId: number;
    // (undocumented)
    removeCC(cc: CommandClasses): void;
    // (undocumented)
    supportsCC(cc: CommandClasses): boolean;
    // (undocumented)
    readonly virtual: false;
}

// Warning: (ae-missing-release-tag) "IZWaveNode" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export interface IZWaveNode extends IZWaveEndpoint, SecurityClassOwner {
    // (undocumented)
    readonly canSleep: boolean | undefined;
    // (undocumented)
    getAllEndpoints(): IZWaveEndpoint[];
    // (undocumented)
    getEndpoint(index: 0): IZWaveEndpoint;
    // (undocumented)
    getEndpoint(index: number): IZWaveEndpoint | undefined;
    // (undocumented)
    getEndpointOrThrow(index: number): IZWaveEndpoint;
    // (undocumented)
    readonly id: number;
    // (undocumented)
    interviewStage: InterviewStage;
    // (undocumented)
    isFrequentListening: FLiRS | undefined;
    // (undocumented)
    isListening: boolean | undefined;
    // (undocumented)
    readonly isSecure: Maybe<boolean>;
    // (undocumented)
    readonly status: NodeStatus;
}

// Warning: (ae-missing-release-tag) "LOG_PREFIX_WIDTH" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const LOG_PREFIX_WIDTH = 20;

// Warning: (ae-missing-release-tag) "LOG_WIDTH" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const LOG_WIDTH = 80;

// Warning: (ae-missing-release-tag) "LogConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface LogConfig {
    // (undocumented)
    enabled: boolean;
    // (undocumented)
    filename: string;
    // (undocumented)
    forceConsole: boolean;
    // (undocumented)
    level: string | number;
    // (undocumented)
    logToFile: boolean;
    // (undocumented)
    nodeFilter?: number[];
    // (undocumented)
    transports: Transport[];
}

// Warning: (ae-missing-release-tag) "LogContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface LogContext<T extends string = string> {
    source: T;
    type?: string;
}

// Warning: (ae-missing-release-tag) "logMessageFormatter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const logMessageFormatter: Format;

// Warning: (ae-missing-release-tag) "LogNodeOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface LogNodeOptions {
    // (undocumented)
    direction?: DataDirection;
    // (undocumented)
    endpoint?: number;
    // (undocumented)
    level?: "debug" | "verbose" | "warn" | "error";
    // (undocumented)
    message: string;
}

// Warning: (ae-missing-release-tag) "LogValueArgs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type LogValueArgs<T> = T & {
    nodeId: number;
    internal?: boolean;
};

// Warning: (ae-missing-release-tag) "managementCCs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const managementCCs: readonly CommandClasses[];

// Warning: (ae-missing-release-tag) "MAX_NODES" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const MAX_NODES = 232;

// Warning: (ae-missing-release-tag) "MAX_REPEATERS" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const MAX_REPEATERS = 4;

// Warning: (ae-missing-release-tag) "MAX_SUPERVISION_SESSION_ID" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const MAX_SUPERVISION_SESSION_ID = 63;

// Warning: (ae-forgotten-export) The symbol "BrandedUnknown" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "Maybe" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type Maybe<T> = T | BrandedUnknown<T>;

// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "messageFitsIntoOneLine" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function messageFitsIntoOneLine(info: ZWaveLogInfo, messageLength: number): boolean;

// Warning: (ae-missing-release-tag) "MessageOrCCLogEntry" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MessageOrCCLogEntry {
    // (undocumented)
    message?: MessageRecord;
    // (undocumented)
    tags: string[];
}

// Warning: (tsdoc-escape-greater-than) The ">" character should be escaped using a backslash to avoid confusion with an HTML tag
// Warning: (ae-missing-release-tag) "MessagePriority" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export enum MessagePriority {
    // (undocumented)
    Controller = 1,
    // (undocumented)
    MultistepController = 2,
    // (undocumented)
    NodeQuery = 7,
    // (undocumented)
    Nonce = 0,
    // (undocumented)
    Normal = 6,
    // (undocumented)
    Ping = 4,
    // (undocumented)
    Poll = 8,
    // (undocumented)
    Supervision = 3,
    // (undocumented)
    WakeUp = 5
}

// Warning: (ae-missing-release-tag) "MessageRecord" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type MessageRecord = Record<string, string | number | boolean | null | undefined>;

// Warning: (ae-missing-release-tag) "messageRecordToLines" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function messageRecordToLines(message: MessageRecord): string[];

// Warning: (ae-missing-release-tag) "messageToLines" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function messageToLines(message: string | string[]): string[];

// Warning: (ae-missing-release-tag) "MetadataUpdatedArgs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MetadataUpdatedArgs extends ValueID {
    // (undocumented)
    metadata: ValueMetadata | undefined;
}

// Warning: (ae-missing-release-tag) "MulticastCC" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type MulticastCC<T extends ICommandClass = ICommandClass> = T & {
    nodeId: MulticastDestination;
};

// Warning: (ae-missing-release-tag) "MulticastDestination" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type MulticastDestination = [number, number, ...number[]];

// Warning: (ae-missing-release-tag) "NODE_ID_BROADCAST" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const NODE_ID_BROADCAST = 255;

// Warning: (ae-missing-release-tag) "NODE_ID_MAX" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const NODE_ID_MAX = 232;

// Warning: (ae-missing-release-tag) "NodeInformationFrame" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type NodeInformationFrame = NodeProtocolInfoAndDeviceClass & ApplicationNodeInformation;

// Warning: (ae-missing-release-tag) "NodeLogContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type NodeLogContext = LogContext & {
    nodeId: number;
    type: "node";
};

// Warning: (ae-missing-release-tag) "NodeProtocolInfo" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NodeProtocolInfo {
    hasSpecificDeviceClass: boolean;
    isFrequentListening: FLiRS;
    isListening: boolean;
    isRouting: boolean;
    nodeType: NodeType;
    optionalFunctionality: boolean;
    // (undocumented)
    protocolVersion: ProtocolVersion;
    // (undocumented)
    supportedDataRates: DataRate[];
    supportsBeaming: boolean;
    supportsSecurity: boolean;
}

// Warning: (ae-missing-release-tag) "NodeProtocolInfoAndDeviceClass" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NodeProtocolInfoAndDeviceClass extends Omit<NodeProtocolInfo, "hasSpecificDeviceClass"> {
    // (undocumented)
    basicDeviceClass: number;
    // (undocumented)
    genericDeviceClass: number;
    // (undocumented)
    specificDeviceClass: number;
}

// Warning: (ae-missing-release-tag) "NodeStatus" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum NodeStatus {
    // (undocumented)
    Alive = 4,
    // (undocumented)
    Asleep = 1,
    // (undocumented)
    Awake = 2,
    // (undocumented)
    Dead = 3,
    // (undocumented)
    Unknown = 0
}

// Warning: (ae-missing-release-tag) "NodeType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum NodeType {
    // (undocumented)
    "End Node" = 1,
    // @deprecated (undocumented)
    "Routing End Node" = 1,
    // (undocumented)
    Controller = 0
}

// Warning: (ae-missing-release-tag) "NodeUpdatePayload" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NodeUpdatePayload extends ApplicationNodeInformation {
    // (undocumented)
    basicDeviceClass: number;
    // (undocumented)
    nodeId: number;
}

// Warning: (ae-missing-release-tag) "nonApplicationCCs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const nonApplicationCCs: readonly CommandClasses[];

// Warning: (ae-missing-release-tag) "normalizeValueID" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function normalizeValueID(valueID: ValueID): ValueID;

// Warning: (ae-missing-release-tag) "NUM_NODEMASK_BYTES" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const NUM_NODEMASK_BYTES: number;

// Warning: (ae-missing-release-tag) "nwiHomeIdFromDSK" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function nwiHomeIdFromDSK(dsk: Buffer): Buffer;

// Warning: (ae-missing-release-tag) "parseApplicationNodeInformation" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function parseApplicationNodeInformation(nif: Buffer): ApplicationNodeInformation;

// Warning: (ae-missing-release-tag) "parseBitMask" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function parseBitMask(mask: Buffer, startValue?: number): number[];

// Warning: (ae-missing-release-tag) "parseBoolean" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function parseBoolean(val: number): boolean | undefined;

// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "parseCCId" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function parseCCId(payload: Buffer, offset?: number): {
    ccId: CommandClasses;
    bytesRead: number;
};

// Warning: (ae-missing-release-tag) "parseCCList" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function parseCCList(payload: Buffer): {
    supportedCCs: CommandClasses[];
    controlledCCs: CommandClasses[];
};

// Warning: (ae-missing-release-tag) "parseFloatWithScale" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
// Warning: (ae-missing-release-tag) "parseFloatWithScale" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function parseFloatWithScale(payload: Buffer, allowEmpty?: false): {
    value: number;
    scale: number;
    bytesRead: number;
};

// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
//
// @public
export function parseFloatWithScale(payload: Buffer, allowEmpty: true): {
    value?: number;
    scale?: number;
    bytesRead: number;
};

// Warning: (ae-missing-release-tag) "parseMaybeBoolean" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function parseMaybeBoolean(val: number, preserveUnknown?: boolean): Maybe<boolean> | undefined;

// Warning: (ae-missing-release-tag) "parseMaybeNumber" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function parseMaybeNumber(val: number): Maybe<number> | undefined;

// Warning: (ae-missing-release-tag) "parseNodeInformationFrame" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function parseNodeInformationFrame(buffer: Buffer): NodeInformationFrame;

// Warning: (ae-missing-release-tag) "parseNodeProtocolInfo" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function parseNodeProtocolInfo(buffer: Buffer, offset: number): NodeProtocolInfo;

// Warning: (ae-missing-release-tag) "parseNodeProtocolInfoAndDeviceClass" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function parseNodeProtocolInfoAndDeviceClass(buffer: Buffer): {
    info: NodeProtocolInfoAndDeviceClass;
    bytesRead: number;
};

// Warning: (ae-missing-release-tag) "parseNodeUpdatePayload" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function parseNodeUpdatePayload(nif: Buffer): NodeUpdatePayload;

// Warning: (ae-missing-release-tag) "parseNumber" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function parseNumber(val: number): number | undefined;

// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
// Warning: (ae-missing-release-tag) "parsePartial" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function parsePartial(value: number, bitMask: number, signed: boolean): number;

// Warning: (ae-missing-release-tag) "parseQRCodeString" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function parseQRCodeString(qr: string): QRProvisioningInformation;

// Warning: (ae-missing-release-tag) "ProtocolDataRate" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ProtocolDataRate {
    // (undocumented)
    LongRange_100k = 4,
    // (undocumented)
    ZWave_100k = 3,
    // (undocumented)
    ZWave_40k = 2,
    // (undocumented)
    ZWave_9k6 = 1
}

// Warning: (ae-missing-release-tag) "protocolDataRateMask" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const protocolDataRateMask = 7;

// Warning: (ae-missing-release-tag) "protocolDataRateToString" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function protocolDataRateToString(rate: ProtocolDataRate): string;

// Warning: (ae-missing-release-tag) "Protocols" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum Protocols {
    // (undocumented)
    ZWave = 0,
    // (undocumented)
    ZWaveLongRange = 1
}

// Warning: (ae-missing-release-tag) "ProtocolType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ProtocolType {
    // (undocumented)
    "Z-Wave AV" = 1,
    // (undocumented)
    "Z-Wave for IP" = 2,
    // (undocumented)
    "Z-Wave" = 0
}

// Warning: (ae-missing-release-tag) "ProtocolVersion" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ProtocolVersion {
    // (undocumented)
    "2.0" = 1,
    // (undocumented)
    "4.2x / 5.0x" = 2,
    // (undocumented)
    "4.5x / 6.0x" = 3,
    // (undocumented)
    "unknown" = 0
}

// Warning: (ae-missing-release-tag) "ProvisioningInformation_MaxInclusionRequestInterval" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ProvisioningInformation_MaxInclusionRequestInterval {
    // (undocumented)
    maxInclusionRequestInterval: number;
}

// Warning: (ae-missing-release-tag) "ProvisioningInformation_ProductId" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ProvisioningInformation_ProductId {
    // (undocumented)
    applicationVersion: string;
    // (undocumented)
    manufacturerId: number;
    // (undocumented)
    productId: number;
    // (undocumented)
    productType: number;
}

// Warning: (ae-missing-release-tag) "ProvisioningInformation_ProductType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ProvisioningInformation_ProductType {
    // (undocumented)
    genericDeviceClass: number;
    // (undocumented)
    installerIconType: number;
    // (undocumented)
    specificDeviceClass: number;
}

// Warning: (ae-missing-release-tag) "ProvisioningInformation_SupportedProtocols" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ProvisioningInformation_SupportedProtocols {
    // (undocumented)
    supportedProtocols: Protocols[];
}

// Warning: (ae-missing-release-tag) "ProvisioningInformation_UUID16" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ProvisioningInformation_UUID16 {
    // (undocumented)
    uuid: string;
}

// Warning: (ae-missing-release-tag) "ProvisioningInformationType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ProvisioningInformationType {
    // (undocumented)
    AdvancedJoining = 53,
    // (undocumented)
    BootstrappingMode = 54,
    // (undocumented)
    Location = 51,
    // (undocumented)
    MaxInclusionRequestInterval = 2,
    // (undocumented)
    Name = 50,
    // (undocumented)
    NetworkStatus = 55,
    // (undocumented)
    ProductId = 1,
    // (undocumented)
    ProductType = 0,
    // (undocumented)
    SmartStartInclusionSetting = 52,
    // (undocumented)
    SupportedProtocols = 4,
    // (undocumented)
    UUID16 = 3
}

// Warning: (ae-missing-release-tag) "QRCodeVersion" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum QRCodeVersion {
    // (undocumented)
    S2 = 0,
    // (undocumented)
    SmartStart = 1
}

// Warning: (ae-missing-release-tag) "QRProvisioningInformation" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type QRProvisioningInformation = {
    version: QRCodeVersion;
    readonly requestedSecurityClasses: SecurityClass[];
    securityClasses: SecurityClass[];
    dsk: string;
} & ProvisioningInformation_ProductType & ProvisioningInformation_ProductId & Partial<ProvisioningInformation_MaxInclusionRequestInterval> & Partial<ProvisioningInformation_UUID16> & Partial<ProvisioningInformation_SupportedProtocols>;

// Warning: (ae-missing-release-tag) "ReflectionDecorator" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ReflectionDecorator<TBase extends Object, TArgs extends any[], TValue, TConstructor extends Constructor<TBase> = Constructor<TBase>> {
    decorator: <TTarget extends TBase>(...args: TArgs) => TypedClassDecorator<TTarget>;
    lookupConstructorByKey: (key: string) => TConstructor | undefined;
    lookupConstructorByValue: (value: TValue) => TConstructor | undefined;
    lookupValue: (target: TBase) => TValue | undefined;
    lookupValueStatic: (constr: Function) => TValue | undefined;
}

// Warning: (ae-missing-release-tag) "ReflectionDecoratorPair" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ReflectionDecoratorPair<TBase extends Object, TSuperArgs extends [any], TSubArgs extends [any], TConstructor extends Constructor<TBase> = Constructor<TBase>> {
    lookupSubConstructor: (...args: [...TSuperArgs, ...TSubArgs]) => TConstructor | undefined;
    lookupSubValue: (target: TBase) => TSubArgs[0] | undefined;
    lookupSubValueStatic: (constr: Function) => TSubArgs[0] | undefined;
    lookupSuperConstructor: (...args: TSuperArgs) => TConstructor | undefined;
    lookupSuperValue: (target: TBase) => TSuperArgs[0] | undefined;
    lookupSuperValueStatic: (constr: Function) => TSuperArgs[0] | undefined;
    subDecorator: <TTarget extends TBase>(...args: TSubArgs) => TypedClassDecorator<TTarget>;
    superDecorator: <TTarget extends TBase>(...args: TSuperArgs) => TypedClassDecorator<TTarget>;
}

// Warning: (ae-missing-release-tag) "restoreSilence" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function restoreSilence(logger: winston.Logger, original: boolean): void;

// Warning: (ae-missing-release-tag) "RFRegion" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum RFRegion {
    // (undocumented)
    "Australia/New Zealand" = 2,
    // (undocumented)
    "Default (EU)" = 255,
    // (undocumented)
    "Hong Kong" = 3,
    // (undocumented)
    "USA (Long Range)" = 9,
    // (undocumented)
    "China" = 8,
    // (undocumented)
    "Europe" = 0,
    // (undocumented)
    "India" = 5,
    // (undocumented)
    "Israel" = 6,
    // (undocumented)
    "Japan" = 32,
    // (undocumented)
    "Korea" = 33,
    // (undocumented)
    "Russia" = 7,
    // (undocumented)
    "Unknown" = 254,
    // (undocumented)
    "USA" = 1
}

// Warning: (ae-missing-release-tag) "RouteProtocolDataRate" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum RouteProtocolDataRate {
    // (undocumented)
    LongRange_100k = 4,
    // (undocumented)
    Unspecified = 0,
    // (undocumented)
    ZWave_100k = 3,
    // (undocumented)
    ZWave_40k = 2,
    // (undocumented)
    ZWave_9k6 = 1
}

// Warning: (ae-missing-release-tag) "RSSI" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type RSSI = number | RssiError;

// Warning: (ae-missing-release-tag) "RssiError" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum RssiError {
    // (undocumented)
    NoSignalDetected = 125,
    // (undocumented)
    NotAvailable = 127,
    // (undocumented)
    ReceiverSaturated = 126
}

// Warning: (ae-missing-release-tag) "rssiToString" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function rssiToString(rssi: RSSI): string;

// Warning: (ae-missing-release-tag) "S2SecurityClass" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type S2SecurityClass = SecurityClass.S2_Unauthenticated | SecurityClass.S2_Authenticated | SecurityClass.S2_AccessControl;

// Warning: (ae-missing-release-tag) "SECURITY_S2_AUTH_TAG_LENGTH" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const SECURITY_S2_AUTH_TAG_LENGTH = 8;

// Warning: (ae-missing-release-tag) "SecurityClass" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum SecurityClass {
    None = -1,
    // (undocumented)
    S0_Legacy = 7,
    // (undocumented)
    S2_AccessControl = 2,
    // (undocumented)
    S2_Authenticated = 1,
    // (undocumented)
    S2_Unauthenticated = 0,
    Temporary = -2
}

// Warning: (ae-missing-release-tag) "securityClassIsS2" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function securityClassIsS2(secClass: SecurityClass | undefined): secClass is S2SecurityClass;

// Warning: (tsdoc-escape-greater-than) The ">" character should be escaped using a backslash to avoid confusion with an HTML tag
// Warning: (ae-missing-release-tag) "securityClassOrder" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const securityClassOrder: readonly [SecurityClass.S2_AccessControl, SecurityClass.S2_Authenticated, SecurityClass.S2_Unauthenticated, SecurityClass.S0_Legacy];

// Warning: (ae-missing-release-tag) "SecurityClassOwner" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SecurityClassOwner {
    // (undocumented)
    getHighestSecurityClass(): SecurityClass | undefined;
    // (undocumented)
    hasSecurityClass(securityClass: SecurityClass): Maybe<boolean>;
    // (undocumented)
    readonly id: number;
    // (undocumented)
    setSecurityClass(securityClass: SecurityClass, granted: boolean): void;
}

// Warning: (ae-missing-release-tag) "SecurityManager" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SecurityManager {
    constructor(options: SecurityManagerOptions);
    // (undocumented)
    get authKey(): Buffer;
    deleteAllNoncesForReceiver(receiver: number): void;
    // (undocumented)
    deleteNonce(id: number | NonceKey): void;
    // (undocumented)
    get encryptionKey(): Buffer;
    generateNonce(receiver: number, length: number): Buffer;
    // (undocumented)
    getFreeNonce(nodeId: number): Buffer | undefined;
    // (undocumented)
    getNonce(id: number | NonceKey): Buffer | undefined;
    // (undocumented)
    getNonceId(nonce: Buffer): number;
    // (undocumented)
    hasNonce(id: number | NonceKey): boolean;
    // (undocumented)
    get networkKey(): Buffer;
    set networkKey(v: Buffer);
    // Warning: (ae-forgotten-export) The symbol "NonceKey" needs to be exported by the entry point index.d.ts
    // Warning: (ae-forgotten-export) The symbol "NonceEntry" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    setNonce(id: number | NonceKey, entry: NonceEntry, { free }?: SetNonceOptions): void;
}

// Warning: (ae-missing-release-tag) "SecurityManager2" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SecurityManager2 {
    constructor();
    // (undocumented)
    assignSecurityClassMulticast(group: number, securityClass: SecurityClass): void;
    deleteNonce(receiver: number): void;
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    generateNonce(receiver: number | undefined): Buffer;
    // (undocumented)
    getKeysForNode(peerNodeID: number): NetworkKeys | TempNetworkKeys;
    // Warning: (ae-forgotten-export) The symbol "NetworkKeys" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    getKeysForSecurityClass(securityClass: SecurityClass): NetworkKeys;
    // (undocumented)
    getSPANState(peerNodeID: number): SPANTableEntry | {
        type: SPANState.None;
    };
    // (undocumented)
    hasKeysForSecurityClass(securityClass: SecurityClass): boolean;
    hasUsedSecurityClass(peerNodeID: number, securityClass: SecurityClass): boolean;
    // (undocumented)
    initializeMPAN(group: number): void;
    initializeSPAN(peerNodeId: number, securityClass: SecurityClass, senderEI: Buffer, receiverEI: Buffer): void;
    initializeTempSPAN(peerNodeId: number, senderEI: Buffer, receiverEI: Buffer): void;
    isDuplicateSinglecast(peerNodeId: number, sequenceNumber: number): boolean;
    // (undocumented)
    nextMPAN(group: number): Buffer;
    nextNonce(peerNodeId: number, store?: boolean): Buffer;
    nextSequenceNumber(peerNodeId: number): number;
    setKey(securityClass: SecurityClass, key: Buffer): void;
    setSPANState(peerNodeID: number, state: SPANTableEntry | {
        type: SPANState.None;
    }): void;
    // (undocumented)
    storeRemoteEI(peerNodeId: number, remoteEI: Buffer): void;
    storeSequenceNumber(peerNodeId: number, sequenceNumber: number): number | undefined;
    // Warning: (ae-forgotten-export) The symbol "TempNetworkKeys" needs to be exported by the entry point index.d.ts
    readonly tempKeys: Map<number, TempNetworkKeys>;
}

// Warning: (ae-missing-release-tag) "SecurityManagerOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SecurityManagerOptions {
    // (undocumented)
    networkKey: Buffer;
    // (undocumented)
    nonceTimeout: number;
    // (undocumented)
    ownNodeId: number;
}

// Warning: (ae-missing-release-tag) "SendCommandOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type SendCommandOptions = SendMessageOptions & SupervisionOptions & {
    maxSendAttempts?: number;
    autoEncapsulate?: boolean;
    encapsulationFlags?: EncapsulationFlags;
    transmitOptions?: TransmitOptions;
};

// Warning: (ae-missing-release-tag) "SendCommandReturnType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type SendCommandReturnType<TResponse extends ICommandClass | undefined> = undefined extends TResponse ? SupervisionResult | undefined : TResponse | undefined;

// Warning: (ae-missing-release-tag) "SendMessageOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SendMessageOptions {
    changeNodeStatusOnMissingACK?: boolean;
    expire?: number;
    onTXReport?: (report: TXReport) => void;
    // @internal
    pauseSendThread?: boolean;
    priority?: MessagePriority;
    requestWakeUpOnDemand?: boolean;
    supportCheck?: boolean;
    // @internal
    tag?: any;
}

// Warning: (ae-missing-release-tag) "sensorCCs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const sensorCCs: readonly CommandClasses[];

// Warning: (ae-missing-release-tag) "serializeCacheValue" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function serializeCacheValue(value: unknown): SerializedValue;

// Warning: (ae-missing-release-tag) "SetNonceOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SetNonceOptions {
    // (undocumented)
    free?: boolean;
}

// Warning: (ae-missing-release-tag) "SetValueOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SetValueOptions {
    noEvent?: boolean;
    noThrow?: boolean;
    source?: ValueUpdatedArgs["source"];
    stateful?: boolean;
}

// Warning: (ae-missing-release-tag) "SimpleReflectionDecorator" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SimpleReflectionDecorator<TBase extends Object, TArgs extends [any], TConstructor extends Constructor<TBase> = Constructor<TBase>> {
    decorator: <TTarget extends TBase>(...args: TArgs) => TypedClassDecorator<TTarget>;
    lookupConstructor: (...args: TArgs) => TConstructor | undefined;
    lookupValue: (target: TBase) => TArgs[0] | undefined;
    lookupValueStatic: (constr: Function) => TArgs[0] | undefined;
}

// Warning: (ae-missing-release-tag) "SinglecastCC" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type SinglecastCC<T extends ICommandClass = ICommandClass> = T & {
    nodeId: number;
};

// Warning: (ae-missing-release-tag) "SPANState" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum SPANState {
    // (undocumented)
    LocalEI = 2,
    None = 0,
    // (undocumented)
    RemoteEI = 1,
    // (undocumented)
    SPAN = 3
}

// Warning: (ae-missing-release-tag) "SPANTableEntry" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type SPANTableEntry = {
    type: SPANState.RemoteEI;
    receiverEI: Buffer;
} | {
    type: SPANState.LocalEI;
    receiverEI: Buffer;
} | {
    type: SPANState.SPAN;
    securityClass: SecurityClass;
    rng: CtrDRBG;
    currentSPAN?: {
        nonce: Buffer;
        expires: number;
    };
};

// Warning: (ae-internal-missing-underscore) The name "stringToNodeList" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal (undocumented)
export function stringToNodeList(nodes?: string): number[] | undefined;

// Warning: (ae-missing-release-tag) "stripUndefined" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function stripUndefined<T>(obj: Record<string, T>): Record<string, T>;

// Warning: (ae-missing-release-tag) "supervisedCommandFailed" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function supervisedCommandFailed(result: unknown): result is SupervisionResult & {
    status: SupervisionStatus.Fail | SupervisionStatus.NoSupport;
};

// Warning: (ae-missing-release-tag) "supervisedCommandSucceeded" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function supervisedCommandSucceeded(result: unknown): result is SupervisionResult & {
    status: SupervisionStatus.Success | SupervisionStatus.Working;
};

// Warning: (ae-missing-release-tag) "SupervisionOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type SupervisionOptions = ({
    useSupervision?: "auto";
} & ({
    requestStatusUpdates?: false;
} | {
    requestStatusUpdates: true;
    onUpdate: SupervisionUpdateHandler;
})) | {
    useSupervision: false;
};

// Warning: (ae-missing-release-tag) "SupervisionResult" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type SupervisionResult = {
    status: SupervisionStatus.NoSupport | SupervisionStatus.Fail | SupervisionStatus.Success;
    remainingDuration?: undefined;
} | {
    status: SupervisionStatus.Working;
    remainingDuration: Duration;
};

// Warning: (ae-missing-release-tag) "SupervisionStatus" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum SupervisionStatus {
    // (undocumented)
    Fail = 2,
    // (undocumented)
    NoSupport = 0,
    // (undocumented)
    Success = 255,
    // (undocumented)
    Working = 1
}

// Warning: (ae-missing-release-tag) "SupervisionUpdateHandler" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type SupervisionUpdateHandler = (update: SupervisionResult) => void;

// Warning: (ae-missing-release-tag) "tagify" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function tagify(tags: string[]): string;

// Warning: (ae-missing-release-tag) "Timeout" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export class Timeout {
    constructor(value: number, unit: TimeoutUnit);
    static parse(payload: number): Timeout;
    // (undocumented)
    static parse(payload: undefined): undefined;
    serialize(): number;
    // (undocumented)
    toJSON(): string | JSONObject;
    // (undocumented)
    toMilliseconds(): number | undefined;
    // (undocumented)
    toString(): string;
    // (undocumented)
    unit: TimeoutUnit;
    // (undocumented)
    get value(): number;
    set value(v: number);
}

// Warning: (ae-missing-release-tag) "TimeoutUnit" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type TimeoutUnit = "seconds" | "minutes" | "none" | "infinite";

// Warning: (ae-missing-release-tag) "timespan" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const timespan: Readonly<{
    seconds: (num: number) => number;
    minutes: (num: number) => number;
    hours: (num: number) => number;
    days: (num: number) => number;
}>;

// Warning: (ae-missing-release-tag) "timestampFormatShort" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const timestampFormatShort = "HH:mm:ss.SSS";

// Warning: (ae-missing-release-tag) "timestampPadding" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const timestampPadding: string;

// Warning: (ae-missing-release-tag) "timestampPaddingShort" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const timestampPaddingShort: string;

// Warning: (ae-missing-release-tag) "topologicalSort" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function topologicalSort<T>(graph: GraphNode<T>[]): T[];

// Warning: (ae-missing-release-tag) "TranslatedValueID" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface TranslatedValueID extends ValueID {
    // (undocumented)
    commandClassName: string;
    // (undocumented)
    propertyKeyName?: string;
    // (undocumented)
    propertyName?: string;
}

// Warning: (ae-missing-release-tag) "TransmitOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum TransmitOptions {
    // (undocumented)
    ACK = 1,
    // (undocumented)
    AutoRoute = 4,
    // (undocumented)
    DEFAULT = 37,
    // (undocumented)
    DEFAULT_NOACK = 36,
    // (undocumented)
    Explore = 32,
    // (undocumented)
    LowPower = 2,
    // (undocumented)
    NoRoute = 16,
    // (undocumented)
    NotSet = 0
}

// Warning: (ae-missing-release-tag) "TransmitStatus" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum TransmitStatus {
    // (undocumented)
    Fail = 2,
    // (undocumented)
    NoAck = 1,
    // (undocumented)
    NoRoute = 4,
    // (undocumented)
    NotIdle = 3,
    // (undocumented)
    OK = 0
}

// Warning: (ae-missing-release-tag) "TXReport" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface TXReport {
    ackChannelNo?: number;
    ackRepeaterRSSI?: [RSSI?, RSSI?, RSSI?, RSSI?];
    ackRSSI?: RSSI;
    beam1000ms: boolean;
    beam250ms: boolean;
    destinationAckMeasuredNoiseFloor?: RSSI;
    destinationAckMeasuredRSSI?: RSSI;
    destinationAckTxPower?: number;
    failedRouteFirstNonFunctionalNodeId?: number;
    failedRouteLastFunctionalNodeId?: number;
    measuredNoiseFloor?: RSSI;
    numRepeaters: number;
    repeaterNodeIds: [number?, number?, number?, number?];
    routeSchemeState: number;
    routeSpeed: ProtocolDataRate;
    routingAttempts: number;
    txChannelNo: number;
    txPower?: number;
    txTicks: number;
}

// Warning: (ae-missing-release-tag) "unknownBoolean" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const unknownBoolean: Maybe<boolean>;

// Warning: (ae-missing-release-tag) "unknownNumber" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const unknownNumber: Maybe<number>;

// Warning: (ae-missing-release-tag) "unsilence" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function unsilence(logger: winston.Logger): boolean;

// Warning: (ae-forgotten-export) The symbol "ValidatePayload" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "validatePayload" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const validatePayload: ValidatePayload;

// Warning: (ae-missing-release-tag) "ValueAddedArgs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ValueAddedArgs extends ValueID {
    // (undocumented)
    newValue: unknown;
}

// Warning: (ae-missing-release-tag) "ValueChangeOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export interface ValueChangeOptions {
    transitionDuration: Duration | string;
    volume: number;
}

// Warning: (ae-forgotten-export) The symbol "ValueDBEventCallbacks" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "ValueDB" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export class ValueDB extends TypedEventEmitter<ValueDBEventCallbacks> {
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    constructor(nodeId: number, valueDB: JsonlDB, metadataDB: JsonlDB<ValueMetadata>, ownKeys?: Set<string>);
    clear(options?: SetValueOptions): void;
    findMetadata(predicate: (id: ValueID) => boolean): (ValueID & {
        metadata: ValueMetadata;
    })[];
    findValues(predicate: (id: ValueID) => boolean): (ValueID & {
        value: unknown;
    })[];
    getAllMetadata(forCC: CommandClasses): (ValueID & {
        metadata: ValueMetadata;
    })[];
    getMetadata(valueId: ValueID): ValueMetadata | undefined;
    getValue<T = unknown>(valueId: ValueID): T | undefined;
    getValues(forCC: CommandClasses): (ValueID & {
        value: unknown;
    })[];
    hasMetadata(valueId: ValueID): boolean;
    hasValue(valueId: ValueID): boolean;
    removeValue(valueId: ValueID, options?: SetValueOptions): boolean;
    setMetadata(valueId: ValueID, metadata: ValueMetadata | undefined, options?: SetValueOptions): void;
    setValue(valueId: ValueID, value: unknown, options?: SetValueOptions): void;
}

// Warning: (ae-missing-release-tag) "ValueID" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export interface ValueID {
    // (undocumented)
    commandClass: CommandClasses;
    // (undocumented)
    endpoint?: number;
    // (undocumented)
    property: string | number;
    // (undocumented)
    propertyKey?: string | number;
}

// Warning: (ae-missing-release-tag) "valueIdToString" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function valueIdToString(valueID: ValueID): string;

// Warning: (ae-missing-release-tag) "ValuelessReflectionDecorator" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ValuelessReflectionDecorator<TBase extends Object> {
    decorator: <TTarget extends TBase>() => TypedClassDecorator<TTarget>;
    isDecorated: (target: TBase) => boolean;
    isDecoratedStatic: (constr: Function) => boolean;
}

// Warning: (ae-missing-release-tag) "ValueLogContext" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ValueLogContext = LogContext & ValueID & {
    nodeId: number;
    type: "value";
};

// Warning: (ae-missing-release-tag) "ValueMetadata" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
// Warning: (ae-missing-release-tag) "ValueMetadata" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ValueMetadata = ValueMetadataAny | ValueMetadataNumeric | ValueMetadataBoolean | ValueMetadataString | ValueMetadataDuration | ValueMetadataBuffer | ConfigurationMetadata;

// @public
export const ValueMetadata: {
    Any: Readonly<{
        readonly type: "any";
        readonly readable: true;
        readonly writeable: true;
    }>;
    ReadOnly: Readonly<{
        readonly writeable: false;
        readonly type: "any";
        readonly readable: true;
    }>;
    WriteOnly: Readonly<{
        readonly readable: false;
        readonly type: "any";
        readonly writeable: true;
    }>;
    Number: Readonly<{
        readonly type: "number";
        readonly readable: true;
        readonly writeable: true;
    }>;
    ReadOnlyNumber: Readonly<{
        readonly writeable: false;
        readonly type: "number";
        readonly readable: true;
    }>;
    WriteOnlyNumber: Readonly<{
        readonly readable: false;
        readonly type: "number";
        readonly writeable: true;
    }>;
    UInt8: Readonly<{
        readonly min: 0;
        readonly max: 255;
        readonly type: "number";
        readonly readable: true;
        readonly writeable: true;
    }>;
    UInt16: Readonly<{
        readonly min: 0;
        readonly max: 65535;
        readonly type: "number";
        readonly readable: true;
        readonly writeable: true;
    }>;
    UInt24: Readonly<{
        readonly min: 0;
        readonly max: 16777215;
        readonly type: "number";
        readonly readable: true;
        readonly writeable: true;
    }>;
    UInt32: Readonly<{
        readonly min: 0;
        readonly max: 4294967295;
        readonly type: "number";
        readonly readable: true;
        readonly writeable: true;
    }>;
    Int8: Readonly<{
        readonly min: -128;
        readonly max: 127;
        readonly type: "number";
        readonly readable: true;
        readonly writeable: true;
    }>;
    Int16: Readonly<{
        readonly min: -32768;
        readonly max: 32767;
        readonly type: "number";
        readonly readable: true;
        readonly writeable: true;
    }>;
    Int24: Readonly<{
        readonly min: -8388608;
        readonly max: 8388607;
        readonly type: "number";
        readonly readable: true;
        readonly writeable: true;
    }>;
    Int32: Readonly<{
        readonly min: -2147483648;
        readonly max: 2147483647;
        readonly type: "number";
        readonly readable: true;
        readonly writeable: true;
    }>;
    ReadOnlyUInt8: Readonly<{
        readonly writeable: false;
        readonly min: 0;
        readonly max: 255;
        readonly type: "number";
        readonly readable: true;
    }>;
    ReadOnlyUInt16: Readonly<{
        readonly writeable: false;
        readonly min: 0;
        readonly max: 65535;
        readonly type: "number";
        readonly readable: true;
    }>;
    ReadOnlyUInt24: Readonly<{
        readonly writeable: false;
        readonly min: 0;
        readonly max: 16777215;
        readonly type: "number";
        readonly readable: true;
    }>;
    ReadOnlyUInt32: Readonly<{
        readonly writeable: false;
        readonly min: 0;
        readonly max: 4294967295;
        readonly type: "number";
        readonly readable: true;
    }>;
    ReadOnlyInt8: Readonly<{
        readonly writeable: false;
        readonly min: -128;
        readonly max: 127;
        readonly type: "number";
        readonly readable: true;
    }>;
    ReadOnlyInt16: Readonly<{
        readonly writeable: false;
        readonly min: -32768;
        readonly max: 32767;
        readonly type: "number";
        readonly readable: true;
    }>;
    ReadOnlyInt24: Readonly<{
        readonly writeable: false;
        readonly min: -8388608;
        readonly max: 8388607;
        readonly type: "number";
        readonly readable: true;
    }>;
    ReadOnlyInt32: Readonly<{
        readonly writeable: false;
        readonly min: -2147483648;
        readonly max: 2147483647;
        readonly type: "number";
        readonly readable: true;
    }>;
    WriteOnlyUInt8: Readonly<{
        readonly readable: false;
        readonly min: 0;
        readonly max: 255;
        readonly type: "number";
        readonly writeable: true;
    }>;
    WriteOnlyUInt16: Readonly<{
        readonly readable: false;
        readonly min: 0;
        readonly max: 65535;
        readonly type: "number";
        readonly writeable: true;
    }>;
    WriteOnlyUInt24: Readonly<{
        readonly readable: false;
        readonly min: 0;
        readonly max: 16777215;
        readonly type: "number";
        readonly writeable: true;
    }>;
    WriteOnlyUInt32: Readonly<{
        readonly readable: false;
        readonly min: 0;
        readonly max: 4294967295;
        readonly type: "number";
        readonly writeable: true;
    }>;
    WriteOnlyInt8: Readonly<{
        readonly readable: false;
        readonly min: -128;
        readonly max: 127;
        readonly type: "number";
        readonly writeable: true;
    }>;
    WriteOnlyInt16: Readonly<{
        readonly readable: false;
        readonly min: -32768;
        readonly max: 32767;
        readonly type: "number";
        readonly writeable: true;
    }>;
    WriteOnlyInt24: Readonly<{
        readonly readable: false;
        readonly min: -8388608;
        readonly max: 8388607;
        readonly type: "number";
        readonly writeable: true;
    }>;
    WriteOnlyInt32: Readonly<{
        readonly readable: false;
        readonly min: -2147483648;
        readonly max: 2147483647;
        readonly type: "number";
        readonly writeable: true;
    }>;
    Level: Readonly<{
        readonly max: 99;
        readonly min: 0;
        readonly type: "number";
        readonly readable: true;
        readonly writeable: true;
    }>;
    ReadOnlyLevel: Readonly<{
        readonly writeable: false;
        readonly max: 99;
        readonly min: 0;
        readonly type: "number";
        readonly readable: true;
    }>;
    WriteOnlyLevel: Readonly<{
        readonly readable: false;
        readonly max: 99;
        readonly min: 0;
        readonly type: "number";
        readonly writeable: true;
    }>;
    Boolean: Readonly<{
        readonly type: "boolean";
        readonly readable: true;
        readonly writeable: true;
    }>;
    ReadOnlyBoolean: Readonly<{
        readonly writeable: false;
        readonly type: "boolean";
        readonly readable: true;
    }>;
    WriteOnlyBoolean: Readonly<{
        readonly readable: false;
        readonly type: "boolean";
        readonly writeable: true;
    }>;
    String: Readonly<{
        readonly type: "string";
        readonly readable: true;
        readonly writeable: true;
    }>;
    ReadOnlyString: Readonly<{
        readonly writeable: false;
        readonly type: "string";
        readonly readable: true;
    }>;
    WriteOnlyString: Readonly<{
        readonly readable: false;
        readonly type: "string";
        readonly writeable: true;
    }>;
    Color: Readonly<{
        readonly type: "color";
        readonly readable: true;
        readonly writeable: true;
    }>;
    ReadOnlyColor: Readonly<{
        readonly writeable: false;
        readonly type: "color";
        readonly readable: true;
    }>;
    WriteOnlyColor: Readonly<{
        readonly readable: false;
        readonly type: "color";
        readonly writeable: true;
    }>;
    Duration: Readonly<{
        readonly type: "duration";
        readonly readable: true;
        readonly writeable: true;
    }>;
    ReadOnlyDuration: Readonly<{
        readonly writeable: false;
        readonly type: "duration";
        readonly readable: true;
    }>;
    WriteOnlyDuration: Readonly<{
        readonly readable: false;
        readonly type: "duration";
        readonly writeable: true;
    }>;
    Buffer: Readonly<{
        readonly type: "buffer";
        readonly readable: true;
        readonly writeable: true;
    }>;
    ReadOnlyBuffer: Readonly<{
        readonly writeable: false;
        readonly type: "buffer";
        readonly readable: true;
    }>;
    WriteOnlyBuffer: Readonly<{
        readable: false;
        type: "buffer";
        writeable: true;
    }>;
};

// Warning: (ae-missing-release-tag) "ValueMetadataAny" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ValueMetadataAny {
    ccSpecific?: Record<string, any>;
    default?: any;
    description?: string;
    label?: string;
    readable: boolean;
    type: ValueType;
    valueChangeOptions?: readonly (keyof ValueChangeOptions)[];
    writeable: boolean;
}

// Warning: (ae-missing-release-tag) "ValueMetadataBoolean" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ValueMetadataBoolean extends ValueMetadataAny {
    default?: number;
    // (undocumented)
    type: "boolean";
}

// Warning: (ae-missing-release-tag) "ValueMetadataBuffer" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ValueMetadataBuffer extends ValueMetadataAny {
    maxLength?: number;
    minLength?: number;
    // (undocumented)
    type: "buffer";
}

// Warning: (ae-missing-release-tag) "ValueMetadataDuration" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ValueMetadataDuration extends ValueMetadataAny {
    // (undocumented)
    default?: Duration;
    // (undocumented)
    type: "duration";
}

// Warning: (ae-missing-release-tag) "ValueMetadataNumeric" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ValueMetadataNumeric extends ValueMetadataAny {
    default?: number;
    max?: number;
    min?: number;
    states?: Record<number, string>;
    steps?: number;
    // (undocumented)
    type: "number";
    unit?: string;
}

// Warning: (ae-missing-release-tag) "ValueMetadataString" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ValueMetadataString extends ValueMetadataAny {
    default?: string;
    maxLength?: number;
    minLength?: number;
    // (undocumented)
    type: "string" | "color";
}

// Warning: (ae-missing-release-tag) "ValueNotificationArgs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ValueNotificationArgs extends ValueID {
    // (undocumented)
    value: unknown;
}

// Warning: (ae-missing-release-tag) "ValueRemovedArgs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ValueRemovedArgs extends ValueID {
    // (undocumented)
    prevValue: unknown;
}

// Warning: (ae-missing-release-tag) "ValueType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ValueType = "number" | "boolean" | "string" | "number[]" | "boolean[]" | "string[]" | "duration" | "color" | "buffer" | "any";

// Warning: (ae-missing-release-tag) "ValueUpdatedArgs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ValueUpdatedArgs extends ValueID {
    // (undocumented)
    newValue: unknown;
    // (undocumented)
    prevValue: unknown;
    source?: "driver" | "node";
}

// Warning: (ae-missing-release-tag) "ZWaveApiVersion" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveApiVersion {
    // (undocumented)
    kind: "official" | "legacy";
    // (undocumented)
    version: number;
}

// Warning: (ae-missing-release-tag) "ZWaveDataRate" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ZWaveDataRate {
    // (undocumented)
    "100k" = 3,
    // (undocumented)
    "40k" = 2,
    // (undocumented)
    "9k6" = 1
}

// Warning: (ae-missing-release-tag) "ZWaveError" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export class ZWaveError extends Error {
    constructor(message: string, code: ZWaveErrorCodes,
    context?: unknown,
    transactionSource?: string | undefined);
    // (undocumented)
    readonly code: ZWaveErrorCodes;
    readonly context?: unknown;
    // (undocumented)
    readonly message: string;
    readonly transactionSource?: string | undefined;
}

// Warning: (ae-missing-release-tag) "ZWaveErrorCodes" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export enum ZWaveErrorCodes {
    // (undocumented)
    Argument_Invalid = 322,
    // (undocumented)
    Arithmetic = 321,
    AssociationCC_InvalidGroup = 1300,
    AssociationCC_NotAllowed = 1301,
    // (undocumented)
    CC_Invalid = 300,
    // (undocumented)
    CC_NoAPI = 304,
    // (undocumented)
    CC_NoNodeID = 301,
    // (undocumented)
    CC_NotImplemented = 303,
    // (undocumented)
    CC_NotSupported = 302,
    Config_CircularImport = 342,
    // (undocumented)
    Config_Invalid = 340,
    // (undocumented)
    Config_NotFound = 341,
    Config_Update_InstallFailed = 345,
    Config_Update_PackageManagerNotFound = 344,
    Config_Update_RegistryError = 343,
    ConfigurationCC_FirstParameterNumber = 1000,
    ConfigurationCC_NoLegacyScanOnNewDevices = 1001,
    ConfigurationCC_NoResetToDefaultOnLegacyDevices = 1002,
    // (undocumented)
    Controller_CallbackNOK = 204,
    Controller_CommandError = 214,
    Controller_EndpointNotFound = 210,
    // (undocumented)
    Controller_ExclusionFailed = 206,
    // (undocumented)
    Controller_InclusionFailed = 205,
    Controller_InterviewRestarted = 208,
    // (undocumented)
    Controller_MessageDropped = 202,
    Controller_MessageExpired = 213,
    Controller_NodeInsecureCommunication = 212,
    Controller_NodeNotFound = 209,
    Controller_NodeRemoved = 211,
    Controller_NodeTimeout = 201,
    Controller_NotSupported = 207,
    // (undocumented)
    Controller_ResponseNOK = 203,
    Controller_Timeout = 200,
    // (undocumented)
    Deserialization_NotImplemented = 320,
    // (undocumented)
    Driver_Destroyed = 102,
    Driver_Failed = 100,
    // (undocumented)
    Driver_FeatureDisabled = 111,
    // (undocumented)
    Driver_InvalidCache = 107,
    // (undocumented)
    Driver_InvalidDataReceived = 104,
    // (undocumented)
    Driver_InvalidOptions = 108,
    // (undocumented)
    Driver_NoErrorHandler = 110,
    // (undocumented)
    Driver_NoPriority = 106,
    Driver_NoSecurity = 109,
    // (undocumented)
    Driver_NotReady = 103,
    // (undocumented)
    Driver_NotSupported = 105,
    // (undocumented)
    Driver_Reset = 101,
    FirmwareUpdateCC_Busy = 1500,
    FirmwareUpdateCC_FailedToAbort = 1504,
    FirmwareUpdateCC_FailedToStart = 1503,
    FirmwareUpdateCC_NotUpgradable = 1501,
    FirmwareUpdateCC_TargetNotFound = 1502,
    FirmwareUpdateCC_Timeout = 1505,
    FWUpdateService_IntegrityCheckFailed = 262,
    FWUpdateService_MissingInformation = 260,
    FWUpdateService_RequestError = 261,
    Invalid_Firmware_File = 1506,
    ManufacturerProprietaryCC_NoManufacturerId = 1200,
    NVM_InvalidFormat = 283,
    NVM_InvalidJSON = 281,
    NVM_NoSpace = 284,
    NVM_NotSupported = 280,
    NVM_ObjectNotFound = 282,
    // (undocumented)
    PacketFormat_Checksum = 2,
    // (undocumented)
    PacketFormat_DecryptionFailed = 4,
    // (undocumented)
    PacketFormat_Invalid = 1,
    // (undocumented)
    PacketFormat_InvalidPayload = 3,
    // (undocumented)
    PacketFormat_Truncated = 0,
    PowerlevelCC_UnsupportedTestNode = 1600,
    RemoveFailedNode_Failed = 360,
    RemoveFailedNode_NodeOK = 361,
    ReplaceFailedNode_Failed = 362,
    ReplaceFailedNode_NodeOK = 363,
    Security2CC_CannotDecode = 1405,
    Security2CC_InvalidQRCode = 1406,
    Security2CC_MissingExtension = 1404,
    Security2CC_NoSPAN = 1401,
    Security2CC_NotInitialized = 1402,
    Security2CC_NotSecure = 1403,
    SecurityCC_NoNonce = 1400,
    SupervisionCC_CommandFailed = 1100,
    Unsupported_Firmware_Format = 1507
}

// Warning: (ae-missing-release-tag) "ZWaveLibraryTypes" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ZWaveLibraryTypes {
    // (undocumented)
    "AV Device" = 11,
    // (undocumented)
    "AV Remote" = 10,
    // (undocumented)
    "Bridge Controller" = 7,
    // (undocumented)
    "Device under Test" = 8,
    // (undocumented)
    "Enhanced Slave" = 3,
    // (undocumented)
    "N/A" = 9,
    // (undocumented)
    "Routing Slave" = 6,
    // (undocumented)
    "Static Controller" = 1,
    // (undocumented)
    "Controller" = 2,
    // (undocumented)
    "Installer" = 5,
    // (undocumented)
    "Slave" = 4,
    // (undocumented)
    "Unknown" = 0
}

// Warning: (ae-missing-release-tag) "ZWaveLogContainer" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveLogContainer extends winston.Container {
    constructor(config?: DeepPartial<LogConfig>);
    // (undocumented)
    destroy(): void;
    // (undocumented)
    getConfiguration(): LogConfig;
    // (undocumented)
    getLogger(label: string): ZWaveLogger;
    isLoglevelVisible(loglevel: string): boolean;
    shouldLogNode(nodeId: number): boolean;
    // (undocumented)
    updateConfiguration(config: DeepPartial<LogConfig>): void;
}

// Warning: (ae-missing-release-tag) "ZWaveLogger" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ZWaveLogger<TContext extends LogContext = LogContext> = Omit<Logger, "log"> & {
    log: <T extends TContext>(info: ZWaveLogInfo<T>) => void;
};

// Warning: (ae-missing-release-tag) "ZWaveLoggerBase" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveLoggerBase<TContext extends LogContext = LogContext> {
    constructor(loggers: ZWaveLogContainer, logLabel: string);
    // (undocumented)
    container: ZWaveLogContainer;
    // (undocumented)
    logger: ZWaveLogger<TContext>;
}

// Warning: (ae-missing-release-tag) "ZWaveLogInfo" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveLogInfo<TContext extends LogContext = LogContext> extends Omit<TransformableInfo, "message"> {
    // (undocumented)
    context: TContext;
    // (undocumented)
    direction: string;
    // (undocumented)
    label?: string;
    // (undocumented)
    message: string | string[];
    // (undocumented)
    multiline?: boolean;
    primaryTags?: string;
    // (undocumented)
    secondaryTagPadding?: number;
    secondaryTags?: string;
    // (undocumented)
    timestamp?: string;
}

// Warnings were encountered during analysis:
//
// src/security/Manager2.ts:55:4 - (ae-forgotten-export) The symbol "CtrDRBG" needs to be exported by the entry point index.d.ts
// src/security/QR.ts:98:2 - (ae-unresolved-link) The @link reference could not be resolved: The package "@zwave-js/core" does not have an export "requestedSecurityClasses"

// (No @packageDocumentation comment for this package)

```
