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

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

```ts

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

import { CommandClasses } from '@zwave-js/core/safe';
import { FLiRS } from '@zwave-js/core/safe';
import { NodeProtocolInfo } from '@zwave-js/core/safe';
import { RFRegion } from '@zwave-js/core/safe';
import { RouteProtocolDataRate } from '@zwave-js/core/safe';

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

// Warning: (ae-missing-release-tag) "json500To700" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function json500To700(json: NVM500JSON, truncateApplicationData?: boolean): NVMJSON;

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

// Warning: (ae-missing-release-tag) "jsonToNVM" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function jsonToNVM(json: Required<NVMJSON>, protocolVersion: string): Buffer;

// Warning: (ae-missing-release-tag) "jsonToNVM500" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function jsonToNVM500(json: Required<NVM500JSON>, protocolVersion: string): Buffer;

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

// Warning: (ae-missing-release-tag) "NVM500JSON" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NVM500JSON {
    // (undocumented)
    controller: NVM500JSONController;
    // (undocumented)
    format: 500;
    // (undocumented)
    meta?: NVM500Meta;
    // (undocumented)
    nodes: Record<number, NVM500JSONNode>;
}

// Warning: (ae-missing-release-tag) "NVM500JSONController" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NVM500JSONController {
    // (undocumented)
    applicationData?: string | null;
    // (undocumented)
    applicationVersion: string;
    // (undocumented)
    commandClasses: CommandClasses[];
    // (undocumented)
    controllerConfiguration: number;
    // (undocumented)
    lastNodeId: number;
    // (undocumented)
    learnedHomeId?: string | null;
    // (undocumented)
    maxNodeId: number;
    // (undocumented)
    nodeId: number;
    // (undocumented)
    ownHomeId: string;
    // (undocumented)
    preferredRepeaters: number[];
    // (undocumented)
    protocolVersion: string;
    // (undocumented)
    reservedId: number;
    // (undocumented)
    rfConfig: NVM500JSONControllerRFConfig;
    // (undocumented)
    staticControllerNodeId: number;
    // (undocumented)
    sucLastIndex: number;
    // Warning: (ae-forgotten-export) The symbol "SUCUpdateEntry" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    sucUpdateEntries: SUCUpdateEntry[];
    // (undocumented)
    systemState: number;
    // (undocumented)
    watchdogStarted: number;
}

// Warning: (ae-missing-release-tag) "NVM500JSONControllerRFConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NVM500JSONControllerRFConfig {
    // (undocumented)
    powerLevelLow: number[];
    // (undocumented)
    powerLevelNormal: number[];
    // (undocumented)
    powerMode: number;
    // (undocumented)
    powerModeExtintEnable: number;
    // (undocumented)
    powerModeWutTimeout: number;
}

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

// Warning: (ae-forgotten-export) The symbol "NVM500NodeInfo" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "NVM500JSONNodeWithInfo" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NVM500JSONNodeWithInfo extends NVM500NodeInfo {
    // (undocumented)
    appRouteLock: boolean;
    // (undocumented)
    isVirtual: boolean;
    // Warning: (ae-forgotten-export) The symbol "Route" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    lwr?: Route | null;
    // (undocumented)
    neighbors: number[];
    // (undocumented)
    nlwr?: Route | null;
    // (undocumented)
    pendingDiscovery: boolean;
    // (undocumented)
    routeSlaveSUC: boolean;
    // (undocumented)
    sucPendingUpdate: boolean;
    // (undocumented)
    sucUpdateIndex: number;
}

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

// Warning: (ae-missing-release-tag) "NVM500Meta" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NVM500Meta {
    // (undocumented)
    firmwareID: number;
    // Warning: (ae-forgotten-export) The symbol "NVM500Details" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    library: NVM500Details["library"];
    // (undocumented)
    manufacturerID: number;
    // (undocumented)
    productID: number;
    // (undocumented)
    productType: number;
}

// Warning: (ae-missing-release-tag) "nvm500ToJSON" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function nvm500ToJSON(buffer: Buffer): Required<NVM500JSON>;

// Warning: (ae-missing-release-tag) "NVMJSON" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NVMJSON {
    // (undocumented)
    controller: NVMJSONController;
    // (undocumented)
    format: number;
    // (undocumented)
    meta?: NVMMeta;
    // (undocumented)
    nodes: Record<number, NVMJSONNode>;
}

// Warning: (ae-missing-release-tag) "NVMJSONController" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NVMJSONController {
    // (undocumented)
    applicationData?: string | null;
    // (undocumented)
    applicationVersion: string;
    // (undocumented)
    commandClasses: {
        includedInsecurely: CommandClasses[];
        includedSecurelyInsecureCCs: CommandClasses[];
        includedSecurelySecureCCs: CommandClasses[];
    };
    // (undocumented)
    controllerConfiguration: number;
    // (undocumented)
    dcdcConfig?: number | null;
    // (undocumented)
    genericDeviceClass: number;
    // (undocumented)
    homeId: string;
    // (undocumented)
    isListening: boolean;
    // (undocumented)
    lastNodeId: number;
    // (undocumented)
    lastNodeIdLR?: number | null;
    // (undocumented)
    maxNodeId: number;
    // (undocumented)
    maxNodeIdLR?: number | null;
    // (undocumented)
    nodeId: number;
    // (undocumented)
    optionalFunctionality: boolean;
    // (undocumented)
    preferredRepeaters?: number[] | null;
    // (undocumented)
    primaryLongRangeChannelId?: number | null;
    // (undocumented)
    protocolVersion: string;
    // (undocumented)
    reservedId: number;
    // (undocumented)
    reservedIdLR?: number | null;
    // (undocumented)
    rfConfig?: NVMJSONControllerRFConfig | null;
    // (undocumented)
    specificDeviceClass: number;
    // (undocumented)
    staticControllerNodeId: number;
    // (undocumented)
    sucAwarenessPushNeeded?: number | null;
    // (undocumented)
    sucLastIndex: number;
    // (undocumented)
    sucUpdateEntries: SUCUpdateEntry[];
    // (undocumented)
    systemState: number;
}

// Warning: (ae-missing-release-tag) "NVMJSONControllerRFConfig" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NVMJSONControllerRFConfig {
    // (undocumented)
    enablePTI: number | null;
    // (undocumented)
    maxTXPower: number | null;
    // (undocumented)
    measured0dBm: number;
    // (undocumented)
    rfRegion: RFRegion;
    // (undocumented)
    txPower: number;
}

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

// Warning: (ae-missing-release-tag) "NVMJSONNodeWithInfo" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NVMJSONNodeWithInfo extends Omit<NodeProtocolInfo, "hasSpecificDeviceClass"> {
    // (undocumented)
    appRouteLock: boolean;
    // (undocumented)
    genericDeviceClass: number;
    // (undocumented)
    isVirtual: boolean;
    // (undocumented)
    lwr?: Route | null;
    // (undocumented)
    neighbors: number[];
    // (undocumented)
    nlwr?: Route | null;
    // (undocumented)
    pendingDiscovery: boolean;
    // (undocumented)
    routeSlaveSUC: boolean;
    // (undocumented)
    specificDeviceClass: number | null;
    // (undocumented)
    sucPendingUpdate: boolean;
    // (undocumented)
    sucUpdateIndex: number;
}

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

// Warning: (ae-missing-release-tag) "NVMMeta" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NVMMeta {
    // (undocumented)
    deviceFamily: number;
    // (undocumented)
    memoryMapped: boolean;
    // (undocumented)
    pageSize: number;
    // (undocumented)
    writeSize: PageWriteSize;
}

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

// Warning: (ae-missing-release-tag) "NVM3Page" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NVMPage {
    // (undocumented)
    header: PageHeader;
    // (undocumented)
    objects: NVMObject[];
}

// Warning: (ae-missing-release-tag) "nvmToJSON" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function nvmToJSON(buffer: Buffer, debugLogs?: boolean): Required<NVMJSON>;

// Warning: (ae-missing-release-tag) "ObjectType" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ObjectType {
    // (undocumented)
    CounterLarge = 1,
    // (undocumented)
    CounterSmall = 2,
    // (undocumented)
    DataLarge = 0,
    // (undocumented)
    DataSmall = 7,
    // (undocumented)
    Deleted = 3
}

// Warning: (ae-missing-release-tag) "NVM3PageHeader" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface PageHeader {
    // (undocumented)
    deviceFamily: number;
    // (undocumented)
    encrypted: boolean;
    // (undocumented)
    eraseCount: number;
    // (undocumented)
    memoryMapped: boolean;
    // (undocumented)
    offset: number;
    // (undocumented)
    pageSize: number;
    // (undocumented)
    status: PageStatus;
    // (undocumented)
    version: number;
    // (undocumented)
    writeSize: PageWriteSize;
}

// Warning: (ae-missing-release-tag) "PageStatus" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum PageStatus {
    // (undocumented)
    Bad = 65535,
    // (undocumented)
    Bad_ErasePending = 42405,
    // (undocumented)
    OK = 4294967295,
    // (undocumented)
    OK_ErasePending = 4294944165
}

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

// (No @packageDocumentation comment for this package)

```
