## API Report File for "zwave-js"

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

```ts

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

import { APIMethodsOf } from '@zwave-js/cc';
import { AssociationAddress } from '@zwave-js/cc';
import { AssociationGroup } from '@zwave-js/cc';
import type { BasicDeviceClass } from '@zwave-js/config';
import { buffer2hex } from '@zwave-js/shared/safe';
import { CCAPIs } from '@zwave-js/cc';
import { CCConstructor } from '@zwave-js/cc';
import { CommandClass } from '@zwave-js/cc';
import { CommandClasses } from '@zwave-js/core/safe';
import { CommandClasses as CommandClasses_2 } from '@zwave-js/core';
import { CommandClassInfo } from '@zwave-js/core';
import { Comparable } from 'alcalzone-shared/comparable';
import { CompareResult } from 'alcalzone-shared/comparable';
import { ConfigManager } from '@zwave-js/config';
import { ControllerLogContext } from '@zwave-js/core';
import { ControllerNodeLogContext } from '@zwave-js/core';
import { ControllerSelfLogContext } from '@zwave-js/core';
import { ControllerValueLogContext } from '@zwave-js/core';
import { DataDirection } from '@zwave-js/core';
import { DataRate } from '@zwave-js/core/safe';
import { DataRate as DataRate_2 } from '@zwave-js/core';
import { DeepPartial } from '@zwave-js/shared';
import type { DeferredPromise } from 'alcalzone-shared/deferred-promise';
import type { DeviceConfig } from '@zwave-js/config';
import { Duration } from '@zwave-js/core/safe';
import { DurationUnit } from '@zwave-js/core/safe';
import type { EntryControlDataTypes } from '@zwave-js/cc';
import type { EntryControlEventTypes } from '@zwave-js/cc';
import { extractFirmware } from '@zwave-js/core';
import { FileSystem } from '@zwave-js/host/safe';
import type { FileSystem as FileSystem_2 } from '@zwave-js/host';
import { Firmware } from '@zwave-js/core';
import { FirmwareFileFormat } from '@zwave-js/core';
import { FirmwareUpdateCapabilities } from '@zwave-js/cc';
import type { FirmwareUpdateStatus } from '@zwave-js/cc';
import { FLiRS } from '@zwave-js/core/safe';
import { FLiRS as FLiRS_2 } from '@zwave-js/core';
import { formatId } from '@zwave-js/shared/safe';
import { FunctionType } from '@zwave-js/serial';
import type { GenericDeviceClass } from '@zwave-js/config';
import { getEnumMemberName } from '@zwave-js/shared/safe';
import { GraphNode } from '@zwave-js/core';
import { guessFirmwareFileFormat } from '@zwave-js/core';
import { ICommandClass } from '@zwave-js/core';
import { ICommandClassContainer } from '@zwave-js/cc';
import { InterviewStage } from '@zwave-js/core/safe';
import { isRssiError } from '@zwave-js/core/safe';
import { IVirtualEndpoint } from '@zwave-js/core/safe';
import { IVirtualNode } from '@zwave-js/core';
import type { IZWaveEndpoint } from '@zwave-js/core';
import { IZWaveNode } from '@zwave-js/core';
import type { JSONObject } from '@zwave-js/shared';
import { KEXFailType } from '@zwave-js/cc';
import { LogConfig } from '@zwave-js/core';
import { LogContext } from '@zwave-js/core';
import { Maybe } from '@zwave-js/core';
import { Message } from '@zwave-js/serial';
import { MessageBaseOptions } from '@zwave-js/serial';
import { MessageDeserializationOptions } from '@zwave-js/serial';
import { MessageOptions } from '@zwave-js/serial';
import { MessageOrCCLogEntry } from '@zwave-js/core';
import { MessagePriority } from '@zwave-js/core';
import { MessageType } from '@zwave-js/serial';
import type { MetadataUpdatedArgs } from '@zwave-js/core';
import { MockControllerBehavior } from '@zwave-js/testing';
import { MockNodeBehavior } from '@zwave-js/testing';
import { MockPortBinding } from '@zwave-js/serial/mock';
import { MulticastCC } from '@zwave-js/core';
import { MulticastDestination } from '@zwave-js/core/safe';
import type { MultilevelSwitchCommand } from '@zwave-js/cc';
import { NODE_ID_BROADCAST } from '@zwave-js/core/safe';
import { NODE_ID_MAX } from '@zwave-js/core/safe';
import { NodeStatus } from '@zwave-js/core/safe';
import type { NodeStatus as NodeStatus_2 } from '@zwave-js/core';
import { NodeType } from '@zwave-js/core/safe';
import { NodeType as NodeType_2 } from '@zwave-js/core';
import type { NotificationCCReport } from '@zwave-js/cc';
import { num2hex } from '@zwave-js/shared/safe';
import { parseQRCodeString } from '@zwave-js/core';
import { Powerlevel } from '@zwave-js/cc';
import type { PowerlevelTestStatus } from '@zwave-js/cc';
import { ProtocolDataRate } from '@zwave-js/core/safe';
import type { ProtocolDataRate as ProtocolDataRate_2 } from '@zwave-js/core';
import { protocolDataRateToString } from '@zwave-js/core';
import { Protocols } from '@zwave-js/core';
import { ProtocolType } from '@zwave-js/core';
import { ProtocolVersion } from '@zwave-js/core/safe';
import { ProtocolVersion as ProtocolVersion_2 } from '@zwave-js/core';
import { QRCodeVersion } from '@zwave-js/core';
import { QRProvisioningInformation } from '@zwave-js/core';
import { ReadonlyObjectKeyMap } from '@zwave-js/shared';
import { ReadonlyThrowingMap } from '@zwave-js/shared';
import { ResponsePredicate } from '@zwave-js/serial';
import { ResponseRole } from '@zwave-js/serial';
import { RFRegion } from '@zwave-js/core/safe';
import { RFRegion as RFRegion_2 } from '@zwave-js/core';
import { RouteProtocolDataRate } from '@zwave-js/core';
import { RSSI } from '@zwave-js/core/safe';
import { RSSI as RSSI_2 } from '@zwave-js/core';
import { RssiError } from '@zwave-js/core/safe';
import { rssiToString } from '@zwave-js/core';
import { Scale } from '@zwave-js/config';
import type { SecurityClass } from '@zwave-js/core/safe';
import { SecurityClass as SecurityClass_2 } from '@zwave-js/core';
import { SecurityClassOwner } from '@zwave-js/core';
import { SendCommandOptions } from '@zwave-js/core';
import { SendCommandReturnType } from '@zwave-js/core';
import { SendMessageOptions } from '@zwave-js/core';
import { SensorType } from '@zwave-js/config';
import { SetbackState } from '@zwave-js/cc';
import { SetValueAPIOptions } from '@zwave-js/cc';
import { SinglecastCC } from '@zwave-js/core';
import type { SpecificDeviceClass } from '@zwave-js/config';
import { Switchpoint } from '@zwave-js/cc';
import { TranslatedValueID as TranslatedValueID_2 } from '@zwave-js/core';
import { TransmitOptions } from '@zwave-js/core';
import { TXReport } from '@zwave-js/core/safe';
import { TypedEventEmitter } from '@zwave-js/shared';
import * as util from 'util';
import type { ValueAddedArgs } from '@zwave-js/core';
import { ValueDB } from '@zwave-js/core';
import { ValueID } from '@zwave-js/core/safe';
import { ValueID as ValueID_2 } from '@zwave-js/core';
import { ValueMetadata } from '@zwave-js/core/safe';
import { ValueMetadata as ValueMetadata_2 } from '@zwave-js/core';
import { ValueMetadataAny } from '@zwave-js/core/safe';
import { ValueMetadataBoolean } from '@zwave-js/core/safe';
import { ValueMetadataNumeric } from '@zwave-js/core/safe';
import { ValueMetadataString } from '@zwave-js/core/safe';
import type { ValueNotificationArgs } from '@zwave-js/core';
import type { ValueRemovedArgs } from '@zwave-js/core';
import { ValueType } from '@zwave-js/core/safe';
import type { ValueUpdatedArgs } from '@zwave-js/core';
import { ZWaveApiVersion } from '@zwave-js/core/safe';
import type { ZWaveApplicationHost } from '@zwave-js/host';
import { ZWaveError } from '@zwave-js/core/safe';
import { ZWaveErrorCodes } from '@zwave-js/core/safe';
import type { ZWaveHost } from '@zwave-js/host';
import type { ZWaveHostOptions } from '@zwave-js/host';
import { ZWaveLibraryTypes } from '@zwave-js/core/safe';
import { ZWavePlusNodeType } from '@zwave-js/cc';
import { ZWavePlusRoleType } from '@zwave-js/cc';
import { ZWaveSerialPortImplementation } from '@zwave-js/serial';

export { buffer2hex }

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

export { ControllerLogContext }

export { ControllerNodeLogContext }

export { ControllerSelfLogContext }

// Warning: (ae-missing-release-tag) "ControllerStatistics" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export interface ControllerStatistics {
    CAN: number;
    messagesDroppedRX: number;
    messagesDroppedTX: number;
    messagesRX: number;
    messagesTX: number;
    NAK: number;
    timeoutACK: number;
    timeoutCallback: number;
    timeoutResponse: number;
}

export { ControllerValueLogContext }

// Warning: (ae-forgotten-export) The symbol "CreateAndStartDriverWithMockPortOptions" needs to be exported by the entry point index.d.ts
// Warning: (ae-forgotten-export) The symbol "CreateAndStartDriverWithMockPortResult" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "createAndStartDriverWithMockPort" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function createAndStartDriverWithMockPort(options?: DeepPartial<CreateAndStartDriverWithMockPortOptions & ZWaveOptions>): Promise<CreateAndStartDriverWithMockPortResult>;

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

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

export { DataRate }

// Warning: (ae-missing-release-tag) "DeviceClass" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DeviceClass {
    constructor(configManager: ConfigManager, basic: number, generic: number, specific: number);
    // (undocumented)
    readonly basic: BasicDeviceClass;
    // (undocumented)
    readonly generic: GenericDeviceClass;
    // (undocumented)
    get mandatoryControlledCCs(): readonly CommandClasses[];
    // (undocumented)
    get mandatorySupportedCCs(): readonly CommandClasses[];
    // (undocumented)
    readonly specific: SpecificDeviceClass;
    // (undocumented)
    toJSON(): JSONObject;
}

// Warning: (ae-forgotten-export) The symbol "DriverEventCallbacks" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "Driver" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export class Driver extends TypedEventEmitter<DriverEventCallbacks> implements ZWaveApplicationHost {
    // (undocumented)
    [util.inspect.custom](): string;
    constructor(port: string | ZWaveSerialPortImplementation, options?: DeepPartial<ZWaveOptions>);
    get allNodesReady(): boolean;
    // (undocumented)
    readonly cacheDir: string;
    checkForConfigUpdates(silent?: boolean): Promise<string | undefined>;
    // Warning: (ae-forgotten-export) The symbol "SendDataRequest" needs to be exported by the entry point index.d.ts
    // Warning: (ae-forgotten-export) The symbol "SendDataBridgeRequest" needs to be exported by the entry point index.d.ts
    computeNetCCPayloadSize(commandOrMsg: CommandClass | SendDataRequest | SendDataBridgeRequest): number;
    // (undocumented)
    readonly configManager: ConfigManager;
    // (undocumented)
    get configVersion(): string;
    get controller(): ZWaveController;
    // Warning: (ae-forgotten-export) The symbol "SendDataMessage" needs to be exported by the entry point index.d.ts
    createSendDataMessage(command: CommandClass, options?: Omit<SendCommandOptions, keyof SendMessageOptions>): SendDataMessage;
    destroy(): Promise<void>;
    disableStatistics(): void;
    enableErrorReporting(): void;
    // Warning: (ae-forgotten-export) The symbol "AppInfo" needs to be exported by the entry point index.d.ts
    enableStatistics(appInfo: Pick<AppInfo, "applicationName" | "applicationVersion">): void;
    static enumerateSerialPorts(): Promise<string[]>;
    getLogConfig(): LogConfig;
    readonly getNextCallbackId: () => number;
    readonly getNextSupervisionSessionId: () => number;
    // (undocumented)
    getNodeUnsafe(msg: Message): ZWaveNode | 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
    getSafeCCVersionForNode(cc: CommandClasses_2, nodeId: number, endpointIndex?: number): number;
    // Warning: (ae-forgotten-export) The symbol "SendDataMulticastRequest" needs to be exported by the entry point index.d.ts
    // Warning: (ae-forgotten-export) The symbol "SendDataMulticastBridgeRequest" needs to be exported by the entry point index.d.ts
    getSendDataMulticastConstructor(): typeof SendDataMulticastRequest | typeof SendDataMulticastBridgeRequest;
    getSendDataSinglecastConstructor(): typeof SendDataRequest | typeof SendDataBridgeRequest;
    // 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
    getSupportedCCVersionForEndpoint(cc: CommandClasses_2, nodeId: number, endpointIndex?: number): number;
    hardReset(): Promise<void>;
    // Warning: (ae-forgotten-export) The symbol "Transaction" needs to be exported by the entry point index.d.ts
    hasPendingTransactions(predicate: (t: Transaction) => boolean): boolean;
    installConfigUpdate(): Promise<boolean>;
    // 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
    isCCSecure(ccId: CommandClasses_2, nodeId: number, endpointIndex?: number): boolean;
    get ready(): boolean;
    // 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-forgotten-export) The symbol "RequestHandler" needs to be exported by the entry point index.d.ts
    registerRequestHandler<T extends Message>(fnType: FunctionType, handler: RequestHandler<T>, oneTime?: boolean): void;
    restoreNetworkStructureFromCache(): Promise<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
    // Warning: (ae-unresolved-link) The @link reference could not be resolved: The package "zwave-js" does not have an export "SupervisionResult"
    sendCommand<TResponse extends ICommandClass | undefined = undefined>(command: CommandClass, options?: SendCommandOptions): Promise<SendCommandReturnType<TResponse>>;
    // 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
    sendMessage<TResponse extends Message = Message>(msg: Message, options?: SendMessageOptions): Promise<TResponse>;
    setPreferredScales(scales: ZWaveOptions["preferences"]["scales"]): void;
    softReset(): Promise<void>;
    start(): Promise<void>;
    get statisticsEnabled(): boolean;
    // (undocumented)
    tryGetEndpoint(cc: CommandClass): Endpoint | undefined;
    trySoftReset(): Promise<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
    unregisterRequestHandler(fnType: FunctionType, handler: RequestHandler): void;
    // (undocumented)
    unwrapCommands(msg: Message & ICommandClassContainer): void;
    updateLogConfig(config: DeepPartial<LogConfig>): 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
    waitForCommand<T extends ICommandClass>(predicate: (cc: ICommandClass) => boolean, timeout: number): Promise<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-unresolved-link) The @link reference could not be resolved: The package "zwave-js" does not have an export "waitForCommand"
    waitForMessage<T extends Message>(predicate: (msg: Message) => boolean, timeout: number): Promise<T>;
}

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

export { Duration }

export { DurationUnit }

// Warning: (ae-missing-release-tag) "Endpoint" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export class Endpoint implements IZWaveEndpoint {
    constructor(
    nodeId: number,
    driver: Driver,
    index: number, deviceClass?: DeviceClass, supportedCCs?: CommandClasses_2[]);
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    addCC(cc: CommandClasses_2, info: Partial<CommandClassInfo>): void;
    protected addMandatoryCC(cc: CommandClasses_2, info: Partial<CommandClassInfo>): void;
    protected applyDeviceClass(deviceClass?: DeviceClass): void;
    buildCCInterviewGraph(skipCCs: CommandClasses_2[]): GraphNode<CommandClasses_2>[];
    get commandClasses(): CCAPIs;
    controlsCC(cc: CommandClasses_2): boolean;
    createCCInstance<T extends CommandClass>(cc: CommandClasses_2 | CCConstructor<T>): T | undefined;
    createCCInstanceUnsafe<T extends CommandClass>(cc: CommandClasses_2 | CCConstructor<T>): T | undefined;
    // (undocumented)
    get deviceClass(): DeviceClass | undefined;
    protected set deviceClass(deviceClass: DeviceClass | undefined);
    protected readonly driver: Driver;
    // (undocumented)
    getCCs(): Iterable<[ccId: CommandClasses_2, info: CommandClassInfo]>;
    getCCVersion(cc: CommandClasses_2): number;
    getNodeUnsafe(): ZWaveNode | undefined;
    getSupportedCCInstances(): readonly CommandClass[];
    hideBasicCCInFavorOfActuatorCCs(): void;
    readonly index: number;
    get installerIcon(): number | undefined;
    invokeCCAPI<CC extends CommandClasses_2, TMethod extends keyof TAPI, TAPI extends Record<string, (...args: any[]) => any> = CommandClasses_2 extends CC ? any : APIMethodsOf<CC>>(cc: CC, method: TMethod, ...args: Parameters<TAPI[TMethod]>): ReturnType<TAPI[TMethod]>;
    isCCSecure(cc: CommandClasses_2): boolean;
    readonly nodeId: number;
    removeCC(cc: CommandClasses_2): void;
    protected reset(): void;
    supportsCC(cc: CommandClasses_2): boolean;
    supportsCCAPI(cc: CommandClasses_2): boolean;
    get userIcon(): number | undefined;
    // Warning: (ae-unresolved-link) The @link reference could not be resolved: The package "zwave-js" does not have an export "IZWaveEndpoint"
    readonly virtual = false;
}

// Warning: (ae-missing-release-tag) "ExclusionOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ExclusionOptions = {
    strategy: ExclusionStrategy.ExcludeOnly | ExclusionStrategy.DisableProvisioningEntry | ExclusionStrategy.Unprovision;
};

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

export { extractFirmware }

export { FileSystem }

export { Firmware }

export { FirmwareFileFormat }

// Warning: (ae-missing-release-tag) "FirmwareUpdateFileInfo" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface FirmwareUpdateFileInfo {
    // (undocumented)
    integrity: `sha256:${string}`;
    // (undocumented)
    target: number;
    // (undocumented)
    url: string;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateInfo" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type FirmwareUpdateInfo = {
    version: string;
    changelog: string;
    files: FirmwareUpdateFileInfo[];
};

export { FLiRS }

export { formatId }

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

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

// Warning: (ae-missing-release-tag) "formatRouteHealthCheckRound" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function formatRouteHealthCheckRound(sourceNodeId: number, targetNodeId: number, round: number, numRounds: number, result: RouteHealthCheckResult): string;

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

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

export { FunctionType }

export { getEnumMemberName }

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

export { guessFirmwareFileFormat }

// Warning: (ae-missing-release-tag) "HealNodeStatus" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type HealNodeStatus = "pending" | "done" | "failed" | "skipped";

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

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

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

// Warning: (ae-missing-release-tag) "InclusionOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type InclusionOptions = {
    strategy: InclusionStrategy.Default;
    userCallbacks?: InclusionUserCallbacks;
    forceSecurity?: boolean;
} | {
    strategy: InclusionStrategy.Security_S2;
    userCallbacks?: InclusionUserCallbacks;
} | {
    strategy: InclusionStrategy.Security_S2;
    provisioning?: PlannedProvisioningEntry;
} | {
    strategy: InclusionStrategy.Insecure | InclusionStrategy.Security_S0;
};

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

// Warning: (ae-missing-release-tag) "InclusionState" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum InclusionState {
    Busy = 3,
    Excluding = 2,
    Idle = 0,
    Including = 1,
    SmartStart = 4
}

// Warning: (ae-missing-release-tag) "InclusionStrategy" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum InclusionStrategy {
    Default = 0,
    Insecure = 2,
    Security_S0 = 3,
    Security_S2 = 4,
    SmartStart = 1
}

// Warning: (ae-missing-release-tag) "InclusionUserCallbacks" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export interface InclusionUserCallbacks {
    abort(): void;
    grantSecurityClasses(requested: InclusionGrant): Promise<InclusionGrant | false>;
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    validateDSKAndEnterPIN(dsk: string): Promise<string | false>;
}

export { InterviewStage }

export { isRssiError }

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

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

// Warning: (ae-missing-release-tag) "LifelineHealthCheckResult" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export interface LifelineHealthCheckResult {
    failedPingsController?: number;
    failedPingsNode: number;
    latency: number;
    minPowerlevel?: Powerlevel;
    // Warning: (tsdoc-escape-greater-than) The ">" character should be escaped using a backslash to avoid confusion with an HTML tag
    numNeighbors: number;
    rating: number;
    routeChanges?: number;
    snrMargin?: number;
}

// Warning: (ae-missing-release-tag) "LifelineHealthCheckSummary" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface LifelineHealthCheckSummary {
    // Warning: (tsdoc-escape-greater-than) The ">" character should be escaped using a backslash to avoid confusion with an HTML tag
    // Warning: (tsdoc-escape-greater-than) The ">" character should be escaped using a backslash to avoid confusion with an HTML tag
    // Warning: (tsdoc-escape-greater-than) The ">" character should be escaped using a backslash to avoid confusion with an HTML tag
    // Warning: (tsdoc-escape-greater-than) The ">" character should be escaped using a backslash to avoid confusion with an HTML tag
    rating: number;
    results: LifelineHealthCheckResult[];
}

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

export { Message }

export { MessageOptions }

export { MessagePriority }

export { MessageType }

export { NODE_ID_BROADCAST }

export { NODE_ID_MAX }

// Warning: (ae-missing-release-tag) "NodeInterviewFailedEventArgs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type NodeInterviewFailedEventArgs = {
    errorMessage: string;
    isFinal: boolean;
} & ({
    attempt: number;
    maxAttempts: number;
} | {});

// Warning: (ae-missing-release-tag) "NodeStatistics" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export interface NodeStatistics {
    commandsDroppedRX: number;
    commandsDroppedTX: number;
    commandsRX: number;
    commandsTX: number;
    lwr?: RouteStatistics;
    nlwr?: RouteStatistics;
    rssi?: RSSI_2;
    rtt?: number;
    timeoutResponse: number;
}

export { NodeStatus }

export { NodeType }

export { num2hex }

export { parseQRCodeString }

// Warning: (ae-missing-release-tag) "PlannedProvisioningEntry" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface PlannedProvisioningEntry {
    [prop: string]: any;
    dsk: string;
    // Warning: (ae-unresolved-link) The @link reference could not be resolved: The package "zwave-js" does not have an export "securityClasses"
    requestedSecurityClasses?: readonly SecurityClass[];
    securityClasses: SecurityClass[];
    status?: ProvisioningEntryStatus;
}

export { ProtocolDataRate }

export { protocolDataRateToString }

export { Protocols }

export { ProtocolType }

export { ProtocolVersion }

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

export { QRCodeVersion }

export { QRProvisioningInformation }

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

// Warning: (ae-missing-release-tag) "ReplaceNodeOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type ReplaceNodeOptions = {
    strategy: InclusionStrategy.Security_S2;
    userCallbacks?: InclusionUserCallbacks;
} | {
    strategy: InclusionStrategy.Security_S2;
    provisioning?: PlannedProvisioningEntry;
} | {
    strategy: InclusionStrategy.Insecure | InclusionStrategy.Security_S0;
};

export { ResponsePredicate }

export { ResponseRole }

export { RFRegion }

// Warning: (ae-missing-release-tag) "RouteHealthCheckResult" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export interface RouteHealthCheckResult {
    failedPingsToSource?: number;
    failedPingsToTarget?: number;
    minPowerlevelSource?: Powerlevel;
    minPowerlevelTarget?: Powerlevel;
    // Warning: (tsdoc-escape-greater-than) The ">" character should be escaped using a backslash to avoid confusion with an HTML tag
    numNeighbors: number;
    rating: number;
}

// Warning: (ae-missing-release-tag) "RouteHealthCheckSummary" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface RouteHealthCheckSummary {
    // Warning: (tsdoc-escape-greater-than) The ">" character should be escaped using a backslash to avoid confusion with an HTML tag
    // Warning: (tsdoc-escape-greater-than) The ">" character should be escaped using a backslash to avoid confusion with an HTML tag
    rating: number;
    results: RouteHealthCheckResult[];
}

export { RouteProtocolDataRate }

// Warning: (ae-missing-release-tag) "RouteStatistics" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface RouteStatistics {
    protocolDataRate: ProtocolDataRate_2;
    repeaterRSSI?: RSSI_2[];
    repeaters: number[];
    routeFailedBetween?: [number, number];
    rssi?: RSSI_2;
}

export { RSSI }

export { RssiError }

export { rssiToString }

export { Scale }

// Warning: (ae-missing-release-tag) "SDKVersion" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type SDKVersion = `${number}.${number}` | `${number}.${number}.${number}`;

export { SendMessageOptions }

export { SensorType }

// Warning: (ae-missing-release-tag) "SerialAPISetupCommand" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum SerialAPISetupCommand {
    // (undocumented)
    GetLRMaximumPayloadSize = 17,
    // (undocumented)
    GetMaximumPayloadSize = 16,
    // (undocumented)
    GetPowerlevel = 8,
    // (undocumented)
    GetRFRegion = 32,
    // (undocumented)
    GetSupportedCommands = 1,
    // (undocumented)
    SetNodeIDType = 128,
    // (undocumented)
    SetPowerlevel = 4,
    // (undocumented)
    SetRFRegion = 64,
    // (undocumented)
    SetTxStatusReport = 2,
    // (undocumented)
    Unsupported = 0
}

export { SetbackState }

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

export { Switchpoint }

// 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_2 {
    // (undocumented)
    commandClassName: string;
    // (undocumented)
    propertyKeyName?: string;
    // (undocumented)
    propertyName?: string;
}

export { TXReport }

export { ValueID }

export { ValueMetadata }

export { ValueMetadataAny }

export { ValueMetadataBoolean }

export { ValueMetadataNumeric }

export { ValueMetadataString }

export { ValueType }

// Warning: (ae-missing-release-tag) "VirtualEndpoint" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export class VirtualEndpoint implements IVirtualEndpoint {
    constructor(
    node: VirtualNode | undefined,
    driver: Driver,
    index: number);
    get commandClasses(): CCAPIs;
    protected readonly driver: Driver;
    getCCVersion(cc: CommandClasses): number;
    readonly index: number;
    invokeCCAPI<CC extends CommandClasses, TMethod extends keyof TAPI, TAPI extends Record<string, (...args: any[]) => any> = CommandClasses extends CC ? any : APIMethodsOf<CC>>(cc: CC, method: TMethod, ...args: Parameters<TAPI[TMethod]>): ReturnType<TAPI[TMethod]>;
    // (undocumented)
    get node(): VirtualNode;
    // (undocumented)
    get nodeId(): number | MulticastDestination;
    supportsCC(cc: CommandClasses): boolean;
    supportsCCAPI(cc: CommandClasses): boolean;
    // Warning: (ae-unresolved-link) The @link reference could not be resolved: The package "zwave-js" does not have an export "IZWaveEndpoint"
    readonly virtual = true;
}

// Warning: (ae-missing-release-tag) "VirtualNode" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class VirtualNode extends VirtualEndpoint implements IVirtualNode {
    constructor(id: number | undefined, driver: Driver,
    physicalNodes: Iterable<ZWaveNode>);
    getDefinedValueIDs(): VirtualValueID[];
    getEndpoint(index: 0): VirtualEndpoint;
    // (undocumented)
    getEndpoint(index: number): VirtualEndpoint | undefined;
    getEndpointCount(): number;
    // (undocumented)
    getEndpointOrThrow(index: number): VirtualEndpoint;
    // (undocumented)
    readonly id: number | undefined;
    // (undocumented)
    readonly physicalNodes: ZWaveNode[];
    setValue(valueId: ValueID_2, value: unknown, options?: SetValueAPIOptions): Promise<boolean>;
}

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

export { ZWaveApiVersion }

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

// @public (undocumented)
export class ZWaveController extends TypedEventEmitter<ControllerEventCallbacks> {
    addAssociations(source: AssociationAddress, group: number, destinations: AssociationAddress[]): Promise<void>;
    // (undocumented)
    assignReturnRoute(nodeId: number, destinationNodeId: number): Promise<boolean>;
    // (undocumented)
    assignSUCReturnRoute(nodeId: number): Promise<boolean>;
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    backupNVMRaw(onProgress?: (bytesRead: number, total: number) => void): Promise<Buffer>;
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    beginExclusion(options?: ExclusionOptions): Promise<boolean>;
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    //
    // @deprecated
    beginExclusion(unprovision: boolean | "inactive"): Promise<boolean>;
    beginHealingNetwork(): boolean;
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    beginInclusion(options?: InclusionOptions): Promise<boolean>;
    beginOTAFirmwareUpdate(nodeId: number, update: FirmwareUpdateFileInfo): Promise<void>;
    // (undocumented)
    cancelSecureBootstrapS2(reason: KEXFailType): void;
    configureSUC(nodeId: number, enableSUC: boolean, enableSIS: boolean): Promise<boolean>;
    // (undocumented)
    deleteReturnRoute(nodeId: number): Promise<boolean>;
    // (undocumented)
    deleteSUCReturnRoute(nodeId: number): Promise<boolean>;
    externalNVMClose(): Promise<void>;
    externalNVMOpen(): Promise<number>;
    externalNVMReadBuffer(offset: number, length: number): Promise<Buffer>;
    externalNVMReadBuffer700(offset: number, length: number): Promise<{
        buffer: Buffer;
        endOfFile: boolean;
    }>;
    externalNVMReadByte(offset: number): Promise<number>;
    externalNVMWriteBuffer(offset: number, buffer: Buffer): Promise<boolean>;
    externalNVMWriteBuffer700(offset: number, buffer: Buffer): Promise<{
        endOfFile: boolean;
    }>;
    externalNVMWriteByte(offset: number, data: number): Promise<boolean>;
    // (undocumented)
    get firmwareVersion(): string | undefined;
    getAllAssociationGroups(nodeId: number): ReadonlyMap<number, ReadonlyMap<number, AssociationGroup>>;
    getAllAssociations(nodeId: number): ReadonlyObjectKeyMap<AssociationAddress, ReadonlyMap<number, readonly AssociationAddress[]>>;
    getAssociationGroups(source: AssociationAddress): ReadonlyMap<number, AssociationGroup>;
    getAssociations(source: AssociationAddress): ReadonlyMap<number, readonly AssociationAddress[]>;
    getAvailableFirmwareUpdates(nodeId: number, options?: GetFirmwareUpdatesOptions): Promise<FirmwareUpdateInfo[]>;
    getBackgroundRSSI(): Promise<{
        rssiChannel0: RSSI_2;
        rssiChannel1: RSSI_2;
        rssiChannel2?: RSSI_2;
    }>;
    getBroadcastNode(): VirtualNode;
    getKnownLifelineRoutes(): ReadonlyMap<number, LifelineRoutes>;
    getMulticastGroup(nodeIDs: number[]): VirtualNode;
    getNodeByDSK(dsk: Buffer | string): ZWaveNode | undefined;
    getNodeNeighbors(nodeId: number, onlyRepeaters?: boolean): Promise<readonly number[]>;
    // Warning: (ae-forgotten-export) The symbol "NVMId" needs to be exported by the entry point index.d.ts
    getNVMId(): Promise<NVMId>;
    // Warning: (ae-forgotten-export) The symbol "SerialAPISetup_GetPowerlevelResponse" needs to be exported by the entry point index.d.ts
    getPowerlevel(): Promise<Pick<SerialAPISetup_GetPowerlevelResponse, "powerlevel" | "measured0dBm">>;
    getProvisioningEntries(): SmartStartProvisioningEntry[];
    getProvisioningEntry(dskOrNodeId: string | number): Readonly<SmartStartProvisioningEntry> | undefined;
    getRFRegion(): Promise<RFRegion_2>;
    hasPlannedProvisioningEntries(): boolean;
    healNode(nodeId: number): Promise<boolean>;
    get homeId(): number | undefined;
    // (undocumented)
    get inclusionState(): InclusionState;
    isAnyOTAFirmwareUpdateInProgress(): boolean;
    isAssociationAllowed(source: AssociationAddress, group: number, destination: AssociationAddress): boolean;
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    isFailedNode(nodeId: number): Promise<boolean>;
    isFunctionSupported(functionType: FunctionType): boolean;
    get isHealNetworkActive(): boolean;
    // (undocumented)
    get isPrimary(): boolean | undefined;
    isSerialAPISetupCommandSupported(command: SerialAPISetupCommand): boolean;
    // (undocumented)
    get isSIS(): boolean | undefined;
    // (undocumented)
    get isSISPresent(): boolean | undefined;
    // (undocumented)
    get isSUC(): boolean | undefined;
    // (undocumented)
    get isUsingHomeIdFromOtherNetwork(): boolean | undefined;
    // (undocumented)
    get manufacturerId(): number | undefined;
    get nodes(): ReadonlyThrowingMap<number, ZWaveNode>;
    // (undocumented)
    get nodeType(): NodeType_2 | undefined;
    get ownNodeId(): number | undefined;
    // (undocumented)
    get productId(): number | undefined;
    // (undocumented)
    get productType(): number | undefined;
    provisionSmartStartNode(entry: PlannedProvisioningEntry): void;
    removeAssociations(source: AssociationAddress, group: number, destinations: AssociationAddress[]): Promise<void>;
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    removeFailedNode(nodeId: number): Promise<void>;
    removeNodeFromAllAssociations(nodeId: number): Promise<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
    replaceFailedNode(nodeId: number, options?: ReplaceNodeOptions): Promise<boolean>;
    // 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
    restoreNVM(nvmData: Buffer, convertProgress?: (bytesRead: number, total: number) => void, restoreProgress?: (bytesWritten: number, total: number) => void): Promise<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
    // Warning: (ae-unresolved-link) The @link reference could not be resolved: The package "zwave-js" does not have an export "restoreNVM"
    restoreNVMRaw(nvmData: Buffer, onProgress?: (bytesWritten: number, total: number) => void): Promise<void>;
    // (undocumented)
    get sdkVersion(): string | undefined;
    sdkVersionGt(version: SDKVersion): boolean | undefined;
    sdkVersionGte(version: SDKVersion): boolean | undefined;
    sdkVersionLt(version: SDKVersion): boolean | undefined;
    sdkVersionLte(version: SDKVersion): boolean | undefined;
    setPowerlevel(powerlevel: number, measured0dBm: number): Promise<boolean>;
    setRFRegion(region: RFRegion_2): Promise<boolean>;
    stopExclusion(): Promise<boolean>;
    stopHealingNetwork(): boolean;
    stopInclusion(): Promise<boolean>;
    // (undocumented)
    get sucNodeId(): number | undefined;
    // (undocumented)
    get supportedFunctionTypes(): readonly FunctionType[] | undefined;
    // (undocumented)
    get supportedSerialAPISetupCommands(): readonly SerialAPISetupCommand[] | undefined;
    supportsFeature(feature: ZWaveFeature): boolean | undefined;
    get supportsSoftReset(): boolean | undefined;
    // (undocumented)
    get supportsTimers(): boolean | undefined;
    toggleRF(enabled: boolean): Promise<boolean>;
    // (undocumented)
    get type(): ZWaveLibraryTypes | undefined;
    unprovisionSmartStartNode(dskOrNodeId: string | number): void;
    get valueDB(): ValueDB;
    // (undocumented)
    get wasRealPrimary(): boolean | undefined;
    // (undocumented)
    get zwaveApiVersion(): ZWaveApiVersion | undefined;
    // Warning: (ae-forgotten-export) The symbol "UnknownZWaveChipType" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    get zwaveChipType(): string | UnknownZWaveChipType | undefined;
}

export { ZWaveError }

export { ZWaveErrorCodes }

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

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

export { ZWaveLibraryTypes }

// Warning: (ae-forgotten-export) The symbol "StatisticsEventCallbacksWithSelf" needs to be exported by the entry point index.d.ts
// Warning: (ae-forgotten-export) The symbol "NodeStatisticsHost" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "ZWaveNode" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
// Warning: (ae-missing-release-tag) "ZWaveNode" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveNode extends TypedEventEmitter<ZWaveNodeEventCallbacks & StatisticsEventCallbacksWithSelf<ZWaveNode, NodeStatistics>>, NodeStatisticsHost {
}

// @public
export class ZWaveNode extends Endpoint implements SecurityClassOwner, IZWaveNode {
    constructor(id: number, driver: Driver, deviceClass?: DeviceClass, supportedCCs?: CommandClasses_2[], controlledCCs?: CommandClasses_2[], valueDB?: ValueDB);
    abortFirmwareUpdate(): Promise<void>;
    // (undocumented)
    get aggregatedEndpointCount(): number | undefined;
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    // Warning: (tsdoc-escape-greater-than) The ">" character should be escaped using a backslash to avoid confusion with an HTML tag
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    beginFirmwareUpdate(data: Buffer, target?: number): Promise<void>;
    // (undocumented)
    get canSleep(): boolean | undefined;
    checkLifelineHealth(rounds?: number, onProgress?: (round: number, totalRounds: number, lastRating: number) => void): Promise<LifelineHealthCheckSummary>;
    checkRouteHealth(targetNodeId: number, rounds?: number, onProgress?: (round: number, totalRounds: number, lastRating: number) => void): Promise<RouteHealthCheckSummary>;
    destroy(): void;
    get deviceConfig(): DeviceConfig | undefined;
    // (undocumented)
    get deviceDatabaseUrl(): string | undefined;
    get dsk(): Buffer | undefined;
    // (undocumented)
    get endpointCountIsDynamic(): boolean | undefined;
    // (undocumented)
    get endpointsHaveIdenticalCapabilities(): boolean | undefined;
    // (undocumented)
    get firmwareVersion(): string | undefined;
    getAllEndpoints(): Endpoint[];
    getDefinedValueIDs(): TranslatedValueID[];
    getEndpoint(index: 0): Endpoint;
    // (undocumented)
    getEndpoint(index: number): Endpoint | undefined;
    getEndpointCount(): number;
    getEndpointIndizes(): number[];
    // (undocumented)
    getEndpointOrThrow(index: number): Endpoint;
    getFirmwareUpdateCapabilities(): Promise<FirmwareUpdateCapabilities>;
    getFirmwareUpdateCapabilitiesCached(): FirmwareUpdateCapabilities;
    getHighestSecurityClass(): SecurityClass_2 | undefined;
    getValue<T = unknown>(valueId: ValueID_2): T | undefined;
    getValueMetadata(valueId: ValueID_2): ValueMetadata_2;
    // (undocumented)
    hasSecurityClass(securityClass: SecurityClass_2): Maybe<boolean>;
    get hasSUCReturnRoute(): boolean;
    set hasSUCReturnRoute(value: boolean);
    // (undocumented)
    readonly id: number;
    // (undocumented)
    get individualEndpointCount(): number | undefined;
    interview(): Promise<void>;
    get interviewAttempts(): number;
    interviewCC(cc: CommandClasses_2): Promise<void>;
    protected interviewCCs(): Promise<boolean>;
    get interviewStage(): InterviewStage;
    set interviewStage(value: InterviewStage);
    get isControllerNode(): boolean;
    isFirmwareUpdateInProgress(): boolean;
    get isFrequentListening(): FLiRS_2 | undefined;
    get isListening(): boolean | undefined;
    get isRouting(): boolean | undefined;
    get isSecure(): Maybe<boolean>;
    keepAwake: boolean;
    // (undocumented)
    get label(): string | undefined;
    protected loadDeviceConfig(): Promise<void>;
    get location(): string | undefined;
    set location(value: string | undefined);
    // (undocumented)
    get manufacturerId(): number | undefined;
    // (undocumented)
    get maxDataRate(): DataRate_2 | undefined;
    get name(): string | undefined;
    set name(value: string | undefined);
    get nodeType(): NodeType_2 | undefined;
    protected overwriteConfig(): Promise<void>;
    ping(): Promise<boolean>;
    pollValue<T = unknown>(valueId: ValueID_2, sendCommandOptions?: SendCommandOptions): Promise<T | undefined>;
    // (undocumented)
    get productId(): number | undefined;
    // (undocumented)
    get productType(): number | undefined;
    get protocolVersion(): ProtocolVersion_2 | undefined;
    protected queryNodeInfo(): Promise<void>;
    protected queryProtocolInfo(): Promise<void>;
    get ready(): boolean;
    refreshCCValues(cc: CommandClasses_2): Promise<void>;
    refreshInfo(options?: RefreshInfoOptions): Promise<void>;
    refreshValues(): Promise<void>;
    requiresManualValueRefresh(): boolean;
    // (undocumented)
    get sdkVersion(): string | undefined;
    // (undocumented)
    setSecurityClass(securityClass: SecurityClass_2, granted: boolean): void;
    setValue(valueId: ValueID_2, value: unknown, options?: SetValueAPIOptions): Promise<boolean>;
    get status(): NodeStatus;
    // (undocumented)
    get supportedDataRates(): readonly DataRate_2[] | undefined;
    get supportsBeaming(): boolean | undefined;
    get supportsSecurity(): boolean | undefined;
    // (undocumented)
    get supportsWakeUpOnDemand(): boolean | undefined;
    testPowerlevel(testNodeId: number, powerlevel: Powerlevel, healthCheckTestFrameCount: number, onProgress?: (acknowledged: number, total: number) => void): Promise<number>;
    waitForWakeup(): Promise<void>;
    // (undocumented)
    get zwavePlusNodeType(): ZWavePlusNodeType | undefined;
    // (undocumented)
    get zwavePlusRoleType(): ZWavePlusRoleType | undefined;
    // (undocumented)
    get zwavePlusVersion(): number | undefined;
}

// Warning: (ae-missing-release-tag) "ZWaveNodeEventCallbacks" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveNodeEventCallbacks extends ZWaveNodeValueEventCallbacks {
    // (undocumented)
    "firmware update finished": ZWaveNodeFirmwareUpdateFinishedCallback;
    // (undocumented)
    "firmware update progress": ZWaveNodeFirmwareUpdateProgressCallback;
    // (undocumented)
    "interview completed": (node: ZWaveNode) => void;
    // (undocumented)
    "interview failed": ZWaveInterviewFailedCallback;
    // (undocumented)
    "interview stage completed": (node: ZWaveNode, stageName: string) => void;
    // (undocumented)
    "interview started": (node: ZWaveNode) => void;
    // (undocumented)
    "wake up": ZWaveNodeStatusChangeCallback;
    // (undocumented)
    alive: ZWaveNodeStatusChangeCallback;
    // (undocumented)
    dead: ZWaveNodeStatusChangeCallback;
    // (undocumented)
    notification: ZWaveNotificationCallback;
    // (undocumented)
    ready: (node: ZWaveNode) => void;
    // (undocumented)
    sleep: ZWaveNodeStatusChangeCallback;
}

// Warning: (ae-missing-release-tag) "ZWaveNodeEvents" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ZWaveNodeEvents = Extract<keyof ZWaveNodeEventCallbacks, string>;

// Warning: (ae-missing-release-tag) "ZWaveNodeFirmwareUpdateFinishedCallback" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ZWaveNodeFirmwareUpdateFinishedCallback = (node: ZWaveNode, status: FirmwareUpdateStatus, waitTime?: number) => void;

// Warning: (ae-missing-release-tag) "ZWaveNodeFirmwareUpdateProgressCallback" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ZWaveNodeFirmwareUpdateProgressCallback = (node: ZWaveNode, sentFragments: number, totalFragments: number) => void;

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

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

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

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

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

// Warning: (ae-missing-release-tag) "ZWaveNodeValueEventCallbacks" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveNodeValueEventCallbacks {
    // (undocumented)
    "metadata updated": ZWaveNodeMetadataUpdatedCallback;
    // (undocumented)
    "value added": ZWaveNodeValueAddedCallback;
    // (undocumented)
    "value notification": ZWaveNodeValueNotificationCallback;
    // (undocumented)
    "value removed": ZWaveNodeValueRemovedCallback;
    // (undocumented)
    "value updated": ZWaveNodeValueUpdatedCallback;
}

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

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

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

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

// Warning: (ae-missing-release-tag) "ZWaveNodeValueUpdatedArgs" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ZWaveNodeValueUpdatedArgs = Omit<ValueUpdatedArgs, "source"> & TranslatedValueID;

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

// Warning: (ae-missing-release-tag) "ZWaveNotificationCallback" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ZWaveNotificationCallback = (...args: ZWaveNotificationCallbackParams_NotificationCC | ZWaveNotificationCallbackParams_EntryControlCC | ZWaveNotificationCallbackParams_PowerlevelCC | ZWaveNotificationCallbackParams_MultilevelSwitchCC) => void;

// Warning: (ae-missing-release-tag) "ZWaveNotificationCallbackArgs_EntryControlCC" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveNotificationCallbackArgs_EntryControlCC {
    // (undocumented)
    dataType: EntryControlDataTypes;
    dataTypeLabel: string;
    // (undocumented)
    eventData?: Buffer | string;
    // (undocumented)
    eventType: EntryControlEventTypes;
    eventTypeLabel: string;
}

// Warning: (ae-missing-release-tag) "ZWaveNotificationCallbackArgs_MultilevelSwitchCC" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export interface ZWaveNotificationCallbackArgs_MultilevelSwitchCC {
    direction?: string;
    eventType: MultilevelSwitchCommand.StartLevelChange | MultilevelSwitchCommand.StopLevelChange;
    eventTypeLabel: string;
}

// Warning: (ae-missing-release-tag) "ZWaveNotificationCallbackArgs_NotificationCC" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveNotificationCallbackArgs_NotificationCC {
    event: number;
    eventLabel: string;
    label: string;
    parameters?: NotificationCCReport["eventParameters"];
    type: number;
}

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

// Warning: (ae-missing-release-tag) "ZWaveNotificationCallbackParams_EntryControlCC" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type ZWaveNotificationCallbackParams_EntryControlCC = [
node: ZWaveNode,
ccId: typeof CommandClasses_2["Entry Control"],
args: ZWaveNotificationCallbackArgs_EntryControlCC
];

// Warning: (ae-missing-release-tag) "ZWaveNotificationCallbackParams_MultilevelSwitchCC" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type ZWaveNotificationCallbackParams_MultilevelSwitchCC = [
node: ZWaveNode,
ccId: typeof CommandClasses_2["Multilevel Switch"],
args: ZWaveNotificationCallbackArgs_MultilevelSwitchCC
];

// Warning: (ae-missing-release-tag) "ZWaveNotificationCallbackParams_NotificationCC" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type ZWaveNotificationCallbackParams_NotificationCC = [
node: ZWaveNode,
ccId: CommandClasses_2.Notification,
args: ZWaveNotificationCallbackArgs_NotificationCC
];

// Warning: (ae-missing-release-tag) "ZWaveNotificationCallbackParams_PowerlevelCC" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type ZWaveNotificationCallbackParams_PowerlevelCC = [
node: ZWaveNode,
ccId: CommandClasses_2.Powerlevel,
args: ZWaveNotificationCallbackArgs_PowerlevelCC
];

// Warning: (ae-missing-release-tag) "ZWaveOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveOptions extends ZWaveHostOptions {
    // (undocumented)
    apiKeys?: {
        firmwareUpdateService?: string;
    };
    // (undocumented)
    attempts: {
        controller: number;
        sendData: number;
        nodeInterview: number;
    };
    disableOptimisticValueUpdate?: boolean;
    emitValueUpdateAfterSetValue?: boolean;
    enableSoftReset?: boolean;
    inclusionUserCallbacks?: InclusionUserCallbacks;
    // (undocumented)
    interview: {
        queryAllUserCodes?: boolean;
        disableOnNodeAdded?: boolean;
    };
    logConfig?: LogConfig;
    // (undocumented)
    preferences: {
        scales: Partial<Record<string | number, string | number>>;
    };
    preserveUnknownValues?: boolean;
    securityKeys?: {
        S2_Unauthenticated?: Buffer;
        S2_Authenticated?: Buffer;
        S2_AccessControl?: Buffer;
        S0_Legacy?: Buffer;
    };
    // (undocumented)
    storage: {
        driver: FileSystem_2;
        cacheDir: string;
        lockDir?: string;
        deviceConfigPriorityDir?: string;
        throttle: "fast" | "normal" | "slow";
    };
    timeouts: {
        ack: number;
        byte: number;
        response: number;
        sendDataCallback: number;
        report: number;
        nonce: number;
        serialAPIStarted: number;
    };
}


export * from "@zwave-js/cc";

// (No @packageDocumentation comment for this package)

```
