node-zwave-js/packages/cc/cc.api.md

856 KiB

API Report File for "@zwave-js/cc"

Do not edit this file. It is a report generated by API Extractor.


import { AlarmSensorCCAPI } from '../cc/AlarmSensorCC.js';
import { AllOrNone } from '@zwave-js/shared/safe';
import { AllOrNone as AllOrNone_2 } from '@zwave-js/shared';
import { ApplicationNodeInformation } from '@zwave-js/core/safe';
import { AssociationCCAPI } from '../cc/AssociationCC.js';
import { AssociationGroupInfoCCAPI } from '../cc/AssociationGroupInfoCC.js';
import { BarrierOperatorCCAPI } from '../cc/BarrierOperatorCC.js';
import { BasicCCAPI } from '../cc/BasicCC.js';
import { BasicDeviceClass } from '@zwave-js/core';
import { BatteryCCAPI } from '../cc/BatteryCC.js';
import { BinarySensorCCAPI } from '../cc/BinarySensorCC.js';
import { BinarySwitchCCAPI } from '../cc/BinarySwitchCC.js';
import { BroadcastCC } from '@zwave-js/core';
import { Bytes } from '@zwave-js/shared/safe';
import { Bytes as Bytes_2 } from '@zwave-js/shared';
import { CCAddress } from '@zwave-js/core';
import type { CCEncodingContext } from '@zwave-js/host';
import type { CCEncodingContext as CCEncodingContext_2 } from '@zwave-js/host/safe';
import { CCId } from '@zwave-js/core';
import { CCParsingContext } from '@zwave-js/host';
import type { CCParsingContext as CCParsingContext_2 } from '@zwave-js/host/safe';
import { CentralSceneCCAPI } from '../cc/CentralSceneCC.js';
import { ClimateControlScheduleCCAPI } from '../cc/ClimateControlScheduleCC.js';
import { ClockCCAPI } from '../cc/ClockCC.js';
import { ColorSwitchCCAPI } from '../cc/ColorSwitchCC.js';
import { CommandClasses } from '@zwave-js/core/safe';
import { CommandClasses as CommandClasses_2 } from '@zwave-js/core';
import { ConfigurationCCAPI } from '../cc/ConfigurationCC.js';
import { ConfigurationMetadata } from '@zwave-js/core/safe';
import { ConfigValue } from '@zwave-js/core/safe';
import { ConfigValueFormat } from '@zwave-js/core/safe';
import { ControlsCC } from '@zwave-js/core/safe';
import { ControlsCC as ControlsCC_2 } from '@zwave-js/core';
import { CRC16CCAPI } from '../cc/CRC16CC.js';
import { DataRate } from '@zwave-js/core';
import { DataRate as DataRate_2 } from '@zwave-js/core/safe';
import { DeviceResetLocallyCCAPI } from '../cc/DeviceResetLocallyCC.js';
import { DoorLockCCAPI } from '../cc/DoorLockCC.js';
import { DoorLockLoggingCCAPI } from '../cc/DoorLockLoggingCC.js';
import { Duration } from '@zwave-js/core/safe';
import { Duration as Duration_2 } from '@zwave-js/core';
import { EncapsulationFlags } from '@zwave-js/core';
import { EndpointId } from '@zwave-js/core';
import { EndpointId as EndpointId_2 } from '@zwave-js/core/safe';
import { EnergyProductionCCAPI } from '../cc/EnergyProductionCC.js';
import { EntryControlCCAPI } from '../cc/EntryControlCC.js';
import { FirmwareUpdateMetaDataCCAPI } from '../cc/FirmwareUpdateMetaDataCC.js';
import { FLiRS } from '@zwave-js/core';
import { FLiRS as FLiRS_2 } from '@zwave-js/core/safe';
import { FrameType } from '@zwave-js/core';
import { GetAllEndpoints } from '@zwave-js/core/safe';
import { GetAllEndpoints as GetAllEndpoints_2 } from '@zwave-js/core';
import { GetCCs } from '@zwave-js/core';
import type { GetCommunicationTimeouts } from '@zwave-js/host';
import { GetDeviceConfig } from '@zwave-js/host';
import { GetDeviceConfig as GetDeviceConfig_2 } from '@zwave-js/host/safe';
import { GetEndpoint } from '@zwave-js/core/safe';
import { GetEndpoint as GetEndpoint_2 } from '@zwave-js/core';
import type { GetInterviewOptions } from '@zwave-js/host';
import { GetNode } from '@zwave-js/host';
import type { GetNode as GetNode_2 } from '@zwave-js/host/safe';
import type { GetSafeCCVersion } from '@zwave-js/host';
import type { GetSupportedCCVersion } from '@zwave-js/host';
import type { GetSupportedCCVersion as GetSupportedCCVersion_2 } from '@zwave-js/host/safe';
import type { GetUserPreferences } from '@zwave-js/host';
import { GetValueDB } from '@zwave-js/host';
import type { GetValueDB as GetValueDB_2 } from '@zwave-js/host/safe';
import { HostIDs } from '@zwave-js/host';
import { HumidityControlModeCCAPI } from '../cc/HumidityControlModeCC.js';
import { HumidityControlOperatingStateCCAPI } from '../cc/HumidityControlOperatingStateCC.js';
import { HumidityControlSetpointCCAPI } from '../cc/HumidityControlSetpointCC.js';
import { InclusionControllerCCAPI } from '../cc/InclusionControllerCC.js';
import { IndicatorCCAPI } from '../cc/IndicatorCC.js';
import { IrrigationCCAPI } from '../cc/IrrigationCC.js';
import { JSONObject } from '@zwave-js/shared';
import { LanguageCCAPI } from '../cc/LanguageCC.js';
import { ListenBehavior } from '@zwave-js/core';
import { LockCCAPI } from '../cc/LockCC.js';
import type { LogNode } from '@zwave-js/host';
import type { LookupManufacturer } from '@zwave-js/host';
import { ManufacturerProprietaryCCAPI } from '../cc/ManufacturerProprietaryCC.js';
import { ManufacturerSpecificCCAPI } from '../cc/ManufacturerSpecificCC.js';
import { MaybeNotKnown } from '@zwave-js/core/safe';
import { MaybeNotKnown as MaybeNotKnown_2 } from '@zwave-js/core';
import { MaybeUnknown } from '@zwave-js/core/safe';
import { MaybeUnknown as MaybeUnknown_2 } from '@zwave-js/core';
import { MessageOrCCLogEntry } from '@zwave-js/core';
import { MessageOrCCLogEntry as MessageOrCCLogEntry_2 } from '@zwave-js/core/safe';
import { MeterCCAPI } from '../cc/MeterCC.js';
import { MeterScale } from '@zwave-js/core/safe';
import { ModifyCCs } from '@zwave-js/core';
import { MulticastCC } from '@zwave-js/core';
import { MulticastDestination } from '@zwave-js/core';
import { MultiChannelAssociationCCAPI } from '../cc/MultiChannelAssociationCC.js';
import { MultiChannelCCAPI } from '../cc/MultiChannelCC.js';
import { MultiCommandCCAPI } from '../cc/MultiCommandCC.js';
import { MultilevelSensorCCAPI } from '../cc/MultilevelSensorCC.js';
import { MultilevelSwitchCCAPI } from '../cc/MultilevelSwitchCC.js';
import { NODE_ID_BROADCAST } from '@zwave-js/core';
import { NODE_ID_BROADCAST_LR } from '@zwave-js/core';
import { NodeId } from '@zwave-js/core/safe';
import { NodeId as NodeId_2 } from '@zwave-js/core';
import { NodeInformationFrame } from '@zwave-js/core';
import { NodeNamingAndLocationCCAPI } from '../cc/NodeNamingCC.js';
import { NodeProtocolInfoAndDeviceClass } from '@zwave-js/core';
import { NodeType } from '@zwave-js/core';
import { NoOperationCCAPI } from '../cc/NoOperationCC.js';
import { NotificationCCAPI } from '../cc/NotificationCC.js';
import { OnlyMethods } from '@zwave-js/shared';
import type { ParamInfoMap } from '@zwave-js/config';
import { PhysicalNodes } from '@zwave-js/core';
import { PowerlevelCCAPI } from '../cc/PowerlevelCC.js';
import { ProtectionCCAPI } from '../cc/ProtectionCC.js';
import { ProtocolVersion } from '@zwave-js/core';
import { QueryNodeStatus } from '@zwave-js/core';
import { QuerySecurityClasses } from '@zwave-js/core/safe';
import { QuerySecurityClasses as QuerySecurityClasses_2 } from '@zwave-js/core';
import { ReadonlyObjectKeyMap } from '@zwave-js/shared/safe';
import { Scale } from '@zwave-js/core/safe';
import { SceneActivationCCAPI } from '../cc/SceneActivationCC.js';
import { SceneActuatorConfigurationCCAPI } from '../cc/SceneActuatorConfigurationCC.js';
import { SceneControllerConfigurationCCAPI } from '../cc/SceneControllerConfigurationCC.js';
import { ScheduleEntryLockCCAPI } from '../cc/ScheduleEntryLockCC.js';
import type { SchedulePoll } from '@zwave-js/host';
import { Security2CCAPI } from '../cc/Security2CC.js';
import { SecurityCCAPI } from '../cc/SecurityCC.js';
import { SecurityClass } from '@zwave-js/core';
import { SecurityManager } from '@zwave-js/core';
import { SecurityManagers } from '@zwave-js/core';
import { SecurityManagers as SecurityManagers_2 } from '@zwave-js/core/safe';
import type { SendCommand } from '@zwave-js/host';
import { SendCommandOptions } from '@zwave-js/core';
import { SetSecurityClass } from '@zwave-js/core';
import { SinglecastCC } from '@zwave-js/core';
import { SinglecastCC as SinglecastCC_2 } from '@zwave-js/core/safe';
import { SoundSwitchCCAPI } from '../cc/SoundSwitchCC.js';
import { SupervisionCCAPI } from '../cc/SupervisionCC.js';
import { SupervisionResult } from '@zwave-js/core/safe';
import { SupervisionResult as SupervisionResult_2 } from '@zwave-js/core';
import { SupervisionStatus } from '@zwave-js/core/safe';
import { SupportsCC } from '@zwave-js/core/safe';
import { SupportsCC as SupportsCC_2 } from '@zwave-js/core';
import { ThermostatFanModeCCAPI } from '../cc/ThermostatFanModeCC.js';
import { ThermostatFanStateCCAPI } from '../cc/ThermostatFanStateCC.js';
import { ThermostatModeCCAPI } from '../cc/ThermostatModeCC.js';
import { ThermostatOperatingStateCCAPI } from '../cc/ThermostatOperatingStateCC.js';
import { ThermostatSetbackCCAPI } from '../cc/ThermostatSetbackCC.js';
import { ThermostatSetpointCCAPI } from '../cc/ThermostatSetpointCC.js';
import { TimeCCAPI } from '../cc/TimeCC.js';
import { Timeout } from '@zwave-js/core/safe';
import { TimeParametersCCAPI } from '../cc/TimeParametersCC.js';
import { TXReport } from '@zwave-js/core';
import { TypedClassDecorator } from '@zwave-js/shared/safe';
import { TypedClassDecorator as TypedClassDecorator_2 } from '@zwave-js/shared';
import { UserCodeCCAPI } from '../cc/UserCodeCC.js';
import { ValueChangeOptions } from '@zwave-js/core';
import { ValueDB } from '@zwave-js/core';
import { ValueID } from '@zwave-js/core';
import { ValueID as ValueID_2 } from '@zwave-js/core/safe';
import { ValueMetadata } from '@zwave-js/core';
import { ValueMetadata as ValueMetadata_2 } from '@zwave-js/core/safe';
import { VersionCCAPI } from '../cc/VersionCC.js';
import { VirtualEndpointId } from '@zwave-js/core';
import { WakeUpCCAPI } from '../cc/WakeUpCC.js';
import { WindowCoveringCCAPI } from '../cc/WindowCoveringCC.js';
import { WithAddress } from '@zwave-js/core/safe';
import { WithAddress as WithAddress_2 } from '@zwave-js/core';
import { ZWaveDataRate } from '@zwave-js/core';
import { ZWaveDataRate as ZWaveDataRate_2 } from '@zwave-js/core/safe';
import { ZWaveErrorCodes } from '@zwave-js/core';
import { ZWaveLibraryTypes } from '@zwave-js/core/safe';
import { ZWavePlusCCAPI } from '../cc/ZWavePlusCC.js';

// Warning: (ae-missing-release-tag) "addAssociations" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
function addAssociations(ctx: CCAPIHost<CCAPINode & SupportsCC & GetEndpoint<EndpointId_2 & SupportsCC> & QuerySecurityClasses>, endpoint: EndpointId_2 & SupportsCC & ControlsCC, group: number, destinations: AssociationAddress[]): Promise<void>;

// Warning: (ae-missing-release-tag) "AlarmSensorCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AlarmSensorCC extends CommandClass {
    // (undocumented)
    ccCommand: AlarmSensorCommand;
    // (undocumented)
    protected createMetadataForSensorType(ctx: GetValueDB_2, sensorType: AlarmSensorType): void;
    static getSupportedSensorTypesCached(ctx: GetValueDB_2, endpoint: EndpointId_2): MaybeNotKnown<AlarmSensorType[]>;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "AlarmSensorCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AlarmSensorCCGet extends AlarmSensorCC {
    constructor(options: WithAddress<AlarmSensorCCGetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): AlarmSensorCCGet;
    // (undocumented)
    sensorType: AlarmSensorType;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "AlarmSensorCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AlarmSensorCCGetOptions {
    // (undocumented)
    sensorType?: AlarmSensorType;
}

// Warning: (ae-missing-release-tag) "AlarmSensorCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AlarmSensorCCReport extends AlarmSensorCC {
    constructor(options: WithAddress<AlarmSensorCCReportOptions>);
    // (undocumented)
    readonly duration: number | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): AlarmSensorCCReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    readonly sensorType: AlarmSensorType;
    // (undocumented)
    readonly severity: number | undefined;
    // (undocumented)
    readonly state: boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "AlarmSensorCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AlarmSensorCCReportOptions {
    // (undocumented)
    duration?: number;
    // (undocumented)
    sensorType: AlarmSensorType;
    // (undocumented)
    severity?: number;
    // (undocumented)
    state: boolean;
}

// Warning: (ae-missing-release-tag) "AlarmSensorCCSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AlarmSensorCCSupportedGet extends AlarmSensorCC {
}

// Warning: (ae-missing-release-tag) "AlarmSensorCCSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AlarmSensorCCSupportedReport extends AlarmSensorCC {
    constructor(options: WithAddress<AlarmSensorCCSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): AlarmSensorCCSupportedReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    supportedSensorTypes: AlarmSensorType[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "AlarmSensorCCSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AlarmSensorCCSupportedReportOptions {
    // (undocumented)
    supportedSensorTypes: AlarmSensorType[];
}

// Warning: (ae-missing-release-tag) "AlarmSensorCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const AlarmSensorCCValues: Readonly<{
    supportedSensorTypes: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Alarm Sensor"];
            property: "supportedSensorTypes";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Alarm Sensor"];
            readonly endpoint: number;
            readonly property: "supportedSensorTypes";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    duration: ((sensorType: AlarmSensorType) => {
        readonly meta: {
            readonly unit: "s";
            readonly label: `${string} duration`;
            readonly description: "For how long the alarm should be active";
            readonly ccSpecific: {
                readonly sensorType: AlarmSensorType;
            };
            readonly writeable: false;
            readonly type: "number";
            readonly readable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Alarm Sensor"];
            property: "duration";
            propertyKey: AlarmSensorType;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Alarm Sensor"];
            readonly endpoint: number;
            readonly property: "duration";
            readonly propertyKey: AlarmSensorType;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    severity: ((sensorType: AlarmSensorType) => {
        readonly meta: {
            readonly min: 1;
            readonly max: 100;
            readonly unit: "%";
            readonly label: `${string} severity`;
            readonly ccSpecific: {
                readonly sensorType: AlarmSensorType;
            };
            readonly writeable: false;
            readonly type: "number";
            readonly readable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Alarm Sensor"];
            property: "severity";
            propertyKey: AlarmSensorType;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Alarm Sensor"];
            readonly endpoint: number;
            readonly property: "severity";
            readonly propertyKey: AlarmSensorType;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    state: ((sensorType: AlarmSensorType) => {
        readonly meta: {
            readonly label: `${string} state`;
            readonly description: "Whether the alarm is active";
            readonly ccSpecific: {
                readonly sensorType: AlarmSensorType;
            };
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Alarm Sensor"];
            property: "state";
            propertyKey: AlarmSensorType;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Alarm Sensor"];
            readonly endpoint: number;
            readonly property: "state";
            readonly propertyKey: AlarmSensorType;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "AlarmSensorCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum AlarmSensorCommand {
    // (undocumented)
    Get = 1,
    // (undocumented)
    Report = 2,
    // (undocumented)
    SupportedGet = 3,
    // (undocumented)
    SupportedReport = 4
}

// Warning: (ae-missing-release-tag) "AlarmSensorType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum AlarmSensorType {
    // (undocumented)
    "General Purpose" = 0,
    // (undocumented)
    "Water Leak" = 5,
    // (undocumented)
    Any = 255,
    // (undocumented)
    CO = 2,
    // (undocumented)
    CO2 = 3,
    // (undocumented)
    Heat = 4,
    // (undocumented)
    Smoke = 1
}

// Warning: (ae-missing-release-tag) "AlarmSensorValueMetadata" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type AlarmSensorValueMetadata = ValueMetadata_2 & {
    ccSpecific: {
        sensorType: AlarmSensorType;
    };
};

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "API" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const API: <TTarget extends typeof CCAPI>(cc: CommandClasses_2) => TypedClassDecorator_2<TTarget>;

// Warning: (ae-missing-release-tag) "APIConstructor" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type APIConstructor<T extends CCAPI = CCAPI> = new (host: CCAPIHost, endpoint: CCAPIEndpoint) => T;

// Warning: (ae-missing-release-tag) "APIMethodsOf" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type APIMethodsOf<CC extends CCNameOrId> = Omit<OnlyMethods<CCToAPI<CC>>, "ccId" | "getNode" | "tryGetNode" | "isSetValueOptimistic" | "isSupported" | "pollValue" | "setValue" | "version" | "supportsCommand" | "withOptions" | "withTXReport">;

// Warning: (ae-missing-release-tag) "assignLifelineIssueingCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
function assignLifelineIssueingCommand(ctx: CCAPIHost<CCAPINode & SupportsCC & ControlsCC & GetEndpoint<EndpointId_2 & SupportsCC> & QuerySecurityClasses>, endpoint: EndpointId_2, ccId: CommandClasses, ccCommand: number): Promise<void>;

// Warning: (ae-missing-release-tag) "AssociationAddress" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AssociationAddress {
    // (undocumented)
    endpoint?: number;
    // (undocumented)
    nodeId: number;
}

// Warning: (ae-missing-release-tag) "AssociationCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AssociationCC extends CommandClass {
    // (undocumented)
    ccCommand: AssociationCommand;
    // (undocumented)
    determineRequiredCCInterviews(): readonly CommandClasses[];
    static getAllDestinationsCached(ctx: GetValueDB_2, endpoint: EndpointId_2): ReadonlyMap<number, readonly AssociationAddress[]>;
    static getGroupCountCached(ctx: GetValueDB_2, endpoint: EndpointId_2): number;
    static getMaxNodesCached(ctx: GetValueDB_2 & GetDeviceConfig_2, endpoint: EndpointId_2, groupId: number): number;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "AssociationCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AssociationCCGet extends AssociationCC {
    constructor(options: WithAddress<AssociationCCGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): AssociationCCGet;
    // (undocumented)
    groupId: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "AssociationCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AssociationCCGetOptions {
    // (undocumented)
    groupId: number;
}

// Warning: (ae-missing-release-tag) "AssociationCCRemove" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AssociationCCRemove extends AssociationCC {
    constructor(options: WithAddress<AssociationCCRemoveOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): AssociationCCRemove;
    // (undocumented)
    groupId?: number;
    // (undocumented)
    nodeIds?: number[];
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "AssociationCCRemoveOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AssociationCCRemoveOptions {
    groupId?: number;
    nodeIds?: number[];
}

// Warning: (ae-missing-release-tag) "AssociationCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AssociationCCReport extends AssociationCC {
    constructor(options: WithAddress<AssociationCCReportOptions>);
    // (undocumented)
    expectMoreMessages(): boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): AssociationCCReport;
    // (undocumented)
    getPartialCCSessionId(): Record<string, any> | undefined;
    // (undocumented)
    groupId: number;
    // (undocumented)
    maxNodes: number;
    // (undocumented)
    mergePartialCCs(partials: AssociationCCReport[], _ctx: CCParsingContext_2): void;
    // (undocumented)
    nodeIds: number[];
    // (undocumented)
    reportsToFollow: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "AssociationCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AssociationCCReportOptions {
    // (undocumented)
    groupId: number;
    // (undocumented)
    maxNodes: number;
    // (undocumented)
    nodeIds: number[];
    // (undocumented)
    reportsToFollow: number;
}

// Warning: (ae-missing-release-tag) "AssociationCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AssociationCCSet extends AssociationCC {
    constructor(options: WithAddress<AssociationCCSetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): AssociationCCSet;
    // (undocumented)
    groupId: number;
    // (undocumented)
    nodeIds: number[];
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "AssociationCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AssociationCCSetOptions {
    // (undocumented)
    groupId: number;
    // (undocumented)
    nodeIds: number[];
}

// Warning: (ae-missing-release-tag) "AssociationCCSpecificGroupGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AssociationCCSpecificGroupGet extends AssociationCC {
}

// Warning: (ae-missing-release-tag) "AssociationCCSpecificGroupReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AssociationCCSpecificGroupReport extends AssociationCC {
    constructor(options: WithAddress<AssociationCCSpecificGroupReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): AssociationCCSpecificGroupReport;
    // (undocumented)
    group: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "AssociationCCSpecificGroupReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AssociationCCSpecificGroupReportOptions {
    // (undocumented)
    group: number;
}

// Warning: (ae-missing-release-tag) "AssociationCCSupportedGroupingsGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AssociationCCSupportedGroupingsGet extends AssociationCC {
}

// Warning: (ae-missing-release-tag) "AssociationCCSupportedGroupingsReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AssociationCCSupportedGroupingsReport extends AssociationCC {
    constructor(options: WithAddress<AssociationCCSupportedGroupingsReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): AssociationCCSupportedGroupingsReport;
    // (undocumented)
    groupCount: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "AssociationCCSupportedGroupingsReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AssociationCCSupportedGroupingsReportOptions {
    // (undocumented)
    groupCount: number;
}

// Warning: (ae-missing-release-tag) "AssociationCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const AssociationCCValues: Readonly<{
    nodeIds: ((groupId: number) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Association;
            property: "nodeIds";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Association;
            readonly endpoint: number;
            readonly property: "nodeIds";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    maxNodes: ((groupId: number) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Association;
            property: "maxNodes";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Association;
            readonly endpoint: number;
            readonly property: "maxNodes";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    groupCount: {
        readonly id: {
            commandClass: CommandClasses.Association;
            property: "groupCount";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Association;
            readonly endpoint: number;
            readonly property: "groupCount";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    hasLifeline: {
        readonly id: {
            commandClass: CommandClasses.Association;
            property: "hasLifeline";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Association;
            readonly endpoint: number;
            readonly property: "hasLifeline";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "AssociationCheckResult" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum AssociationCheckResult {
    Forbidden_DestinationIsLongRange = 2,
    Forbidden_DestinationSecurityClassNotGranted = 6,
    Forbidden_NoSupportedCCs = 7,
    Forbidden_SecurityClassMismatch = 5,
    Forbidden_SelfAssociation = 4,
    Forbidden_SourceIsLongRange = 3,
    // (undocumented)
    OK = 1
}

// Warning: (ae-missing-release-tag) "AssociationCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum AssociationCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Remove = 4,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1,
    // (undocumented)
    SpecificGroupGet = 11,
    // (undocumented)
    SpecificGroupReport = 12,
    // (undocumented)
    SupportedGroupingsGet = 5,
    // (undocumented)
    SupportedGroupingsReport = 6
}

// Warning: (ae-missing-release-tag) "AssociationGroup" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AssociationGroup {
    isLifeline: boolean;
    issuedCommands?: ReadonlyMap<CommandClasses, readonly number[]>;
    label: string;
    maxNodes: number;
    multiChannel: boolean;
    profile?: AssociationGroupInfoProfile;
}

// Warning: (ae-missing-release-tag) "AssociationGroupInfoCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AssociationGroupInfoCC extends CommandClass {
    // (undocumented)
    ccCommand: AssociationGroupInfoCommand;
    // (undocumented)
    determineRequiredCCInterviews(): readonly CommandClasses[];
    // (undocumented)
    static findGroupsForIssuedCommand(ctx: GetValueDB_2, endpoint: EndpointId_2 & SupportsCC, ccId: CommandClasses, command: number): number[];
    static getGroupNameCached(ctx: GetValueDB_2, endpoint: EndpointId_2, groupId: number): MaybeNotKnown<string>;
    static getGroupProfileCached(ctx: GetValueDB_2, endpoint: EndpointId_2, groupId: number): MaybeNotKnown<AssociationGroupInfoProfile>;
    static getIssuedCommandsCached(ctx: GetValueDB_2, endpoint: EndpointId_2, groupId: number): MaybeNotKnown<ReadonlyMap<CommandClasses, readonly number[]>>;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "AssociationGroupInfoCCCommandListGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AssociationGroupInfoCCCommandListGet extends AssociationGroupInfoCC {
    constructor(options: WithAddress<AssociationGroupInfoCCCommandListGetOptions>);
    // (undocumented)
    allowCache: boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): AssociationGroupInfoCCCommandListGet;
    // (undocumented)
    groupId: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "AssociationGroupInfoCCCommandListGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AssociationGroupInfoCCCommandListGetOptions {
    // (undocumented)
    allowCache: boolean;
    // (undocumented)
    groupId: number;
}

// Warning: (ae-missing-release-tag) "AssociationGroupInfoCCCommandListReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AssociationGroupInfoCCCommandListReport extends AssociationGroupInfoCC {
    constructor(options: WithAddress<AssociationGroupInfoCCCommandListReportOptions>);
    // (undocumented)
    readonly commands: ReadonlyMap<CommandClasses, readonly number[]>;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): AssociationGroupInfoCCCommandListReport;
    // (undocumented)
    readonly groupId: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "AssociationGroupInfoCCCommandListReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AssociationGroupInfoCCCommandListReportOptions {
    // (undocumented)
    commands: ReadonlyMap<CommandClasses, readonly number[]>;
    // (undocumented)
    groupId: number;
}

// Warning: (ae-missing-release-tag) "AssociationGroupInfoCCInfoGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AssociationGroupInfoCCInfoGet extends AssociationGroupInfoCC {
    constructor(options: WithAddress<AssociationGroupInfoCCInfoGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): AssociationGroupInfoCCInfoGet;
    // (undocumented)
    groupId?: number;
    // (undocumented)
    listMode?: boolean;
    // (undocumented)
    refreshCache: boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "AssociationGroupInfoCCInfoGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type AssociationGroupInfoCCInfoGetOptions = {
    refreshCache: boolean;
} & ({
    listMode: boolean;
} | {
    groupId: number;
});

// Warning: (ae-missing-release-tag) "AssociationGroupInfoCCInfoReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AssociationGroupInfoCCInfoReport extends AssociationGroupInfoCC {
    constructor(options: WithAddress<AssociationGroupInfoCCInfoReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): AssociationGroupInfoCCInfoReport;
    // Warning: (ae-forgotten-export) The symbol "AssociationGroupInfo" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    readonly groups: readonly AssociationGroupInfo[];
    // (undocumented)
    readonly hasDynamicInfo: boolean;
    // (undocumented)
    readonly isListMode: boolean;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "AssociationGroupInfoCCInfoReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AssociationGroupInfoCCInfoReportOptions {
    // (undocumented)
    groups: AssociationGroupInfo[];
    // (undocumented)
    hasDynamicInfo: boolean;
    // (undocumented)
    isListMode: boolean;
}

// Warning: (ae-missing-release-tag) "AssociationGroupInfoCCNameGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AssociationGroupInfoCCNameGet extends AssociationGroupInfoCC {
    constructor(options: WithAddress<AssociationGroupInfoCCNameGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): AssociationGroupInfoCCNameGet;
    // (undocumented)
    groupId: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "AssociationGroupInfoCCNameGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AssociationGroupInfoCCNameGetOptions {
    // (undocumented)
    groupId: number;
}

// Warning: (ae-missing-release-tag) "AssociationGroupInfoCCNameReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class AssociationGroupInfoCCNameReport extends AssociationGroupInfoCC {
    constructor(options: WithAddress<AssociationGroupInfoCCNameReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): AssociationGroupInfoCCNameReport;
    // (undocumented)
    readonly groupId: number;
    // (undocumented)
    readonly name: string;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "AssociationGroupInfoCCNameReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface AssociationGroupInfoCCNameReportOptions {
    // (undocumented)
    groupId: number;
    // (undocumented)
    name: string;
}

// Warning: (ae-missing-release-tag) "AssociationGroupInfoCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const AssociationGroupInfoCCValues: Readonly<{
    commands: ((groupId: number) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Association Group Information"];
            property: "issuedCommands";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Association Group Information"];
            readonly endpoint: number;
            readonly property: "issuedCommands";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    groupInfo: ((groupId: number) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Association Group Information"];
            property: "info";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Association Group Information"];
            readonly endpoint: number;
            readonly property: "info";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    groupName: ((groupId: number) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Association Group Information"];
            property: "name";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Association Group Information"];
            readonly endpoint: number;
            readonly property: "name";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    hasDynamicInfo: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Association Group Information"];
            property: "hasDynamicInfo";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Association Group Information"];
            readonly endpoint: number;
            readonly property: "hasDynamicInfo";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "AssociationGroupInfoCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum AssociationGroupInfoCommand {
    // (undocumented)
    CommandListGet = 5,
    // (undocumented)
    CommandListReport = 6,
    // (undocumented)
    InfoGet = 3,
    // (undocumented)
    InfoReport = 4,
    // (undocumented)
    NameGet = 1,
    // (undocumented)
    NameReport = 2
}

// Warning: (ae-missing-release-tag) "AssociationGroupInfoProfile" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum AssociationGroupInfoProfile {
    // (undocumented)
    "Control: Key 01" = 8193,
    // (undocumented)
    "Control: Key 02" = 8194,
    // (undocumented)
    "Control: Key 03" = 8195,
    // (undocumented)
    "Control: Key 04" = 8196,
    // (undocumented)
    "Control: Key 05" = 8197,
    // (undocumented)
    "Control: Key 06" = 8198,
    // (undocumented)
    "Control: Key 07" = 8199,
    // (undocumented)
    "Control: Key 08" = 8200,
    // (undocumented)
    "Control: Key 09" = 8201,
    // (undocumented)
    "Control: Key 10" = 8202,
    // (undocumented)
    "Control: Key 11" = 8203,
    // (undocumented)
    "Control: Key 12" = 8204,
    // (undocumented)
    "Control: Key 13" = 8205,
    // (undocumented)
    "Control: Key 14" = 8206,
    // (undocumented)
    "Control: Key 15" = 8207,
    // (undocumented)
    "Control: Key 16" = 8208,
    // (undocumented)
    "Control: Key 17" = 8209,
    // (undocumented)
    "Control: Key 18" = 8210,
    // (undocumented)
    "Control: Key 19" = 8211,
    // (undocumented)
    "Control: Key 20" = 8212,
    // (undocumented)
    "Control: Key 21" = 8213,
    // (undocumented)
    "Control: Key 22" = 8214,
    // (undocumented)
    "Control: Key 23" = 8215,
    // (undocumented)
    "Control: Key 24" = 8216,
    // (undocumented)
    "Control: Key 25" = 8217,
    // (undocumented)
    "Control: Key 26" = 8218,
    // (undocumented)
    "Control: Key 27" = 8219,
    // (undocumented)
    "Control: Key 28" = 8220,
    // (undocumented)
    "Control: Key 29" = 8221,
    // (undocumented)
    "Control: Key 30" = 8222,
    // (undocumented)
    "Control: Key 31" = 8223,
    // (undocumented)
    "Control: Key 32" = 8224,
    // (undocumented)
    "General: Lifeline" = 1,
    // (undocumented)
    "General: N/A" = 0,
    // (undocumented)
    "Irrigation: Channel 01" = 27393,
    // (undocumented)
    "Irrigation: Channel 02" = 27394,
    // (undocumented)
    "Irrigation: Channel 03" = 27395,
    // (undocumented)
    "Irrigation: Channel 04" = 27396,
    // (undocumented)
    "Irrigation: Channel 05" = 27397,
    // (undocumented)
    "Irrigation: Channel 06" = 27398,
    // (undocumented)
    "Irrigation: Channel 07" = 27399,
    // (undocumented)
    "Irrigation: Channel 08" = 27400,
    // (undocumented)
    "Irrigation: Channel 09" = 27401,
    // (undocumented)
    "Irrigation: Channel 10" = 27402,
    // (undocumented)
    "Irrigation: Channel 11" = 27403,
    // (undocumented)
    "Irrigation: Channel 12" = 27404,
    // (undocumented)
    "Irrigation: Channel 13" = 27405,
    // (undocumented)
    "Irrigation: Channel 14" = 27406,
    // (undocumented)
    "Irrigation: Channel 15" = 27407,
    // (undocumented)
    "Irrigation: Channel 16" = 27408,
    // (undocumented)
    "Irrigation: Channel 17" = 27409,
    // (undocumented)
    "Irrigation: Channel 18" = 27410,
    // (undocumented)
    "Irrigation: Channel 19" = 27411,
    // (undocumented)
    "Irrigation: Channel 20" = 27412,
    // (undocumented)
    "Irrigation: Channel 21" = 27413,
    // (undocumented)
    "Irrigation: Channel 22" = 27414,
    // (undocumented)
    "Irrigation: Channel 23" = 27415,
    // (undocumented)
    "Irrigation: Channel 24" = 27416,
    // (undocumented)
    "Irrigation: Channel 25" = 27417,
    // (undocumented)
    "Irrigation: Channel 26" = 27418,
    // (undocumented)
    "Irrigation: Channel 27" = 27419,
    // (undocumented)
    "Irrigation: Channel 28" = 27420,
    // (undocumented)
    "Irrigation: Channel 29" = 27421,
    // (undocumented)
    "Irrigation: Channel 30" = 27422,
    // (undocumented)
    "Irrigation: Channel 31" = 27423,
    // (undocumented)
    "Irrigation: Channel 32" = 27424,
    // (undocumented)
    "Meter: Cooling" = 12805,
    // (undocumented)
    "Meter: Electric" = 12801,
    // (undocumented)
    "Meter: Gas" = 12802,
    // (undocumented)
    "Meter: Heating" = 12804,
    // (undocumented)
    "Meter: Water" = 12803,
    // (undocumented)
    "Notification: Access Control" = 28934,
    // (undocumented)
    "Notification: Appliance" = 28940,
    // (undocumented)
    "Notification: Clock" = 28939,
    // (undocumented)
    "Notification: CO Alarm" = 28930,
    // (undocumented)
    "Notification: CO2 Alarm" = 28931,
    // (undocumented)
    "Notification: Emergency Alarm" = 28938,
    // (undocumented)
    "Notification: Gas alarm" = 28946,
    // (undocumented)
    "Notification: Heat Alarm" = 28932,
    // (undocumented)
    "Notification: Home Health" = 28941,
    // (undocumented)
    "Notification: Home monitoring" = 28950,
    // (undocumented)
    "Notification: Home Security" = 28935,
    // (undocumented)
    "Notification: Irrigation" = 28945,
    // (undocumented)
    "Notification: Light sensor" = 28948,
    // (undocumented)
    "Notification: Pest Control" = 28947,
    // (undocumented)
    "Notification: Power Management" = 28936,
    // (undocumented)
    "Notification: Siren" = 28942,
    // (undocumented)
    "Notification: Smoke Alarm" = 28929,
    // (undocumented)
    "Notification: System" = 28937,
    // (undocumented)
    "Notification: Water Alarm" = 28933,
    // (undocumented)
    "Notification: Water Quality Monitoring" = 28949,
    // (undocumented)
    "Notification: Water Valve" = 28943,
    // (undocumented)
    "Notification: Weather Alarm" = 28944,
    // (undocumented)
    "Sensor: Acceleration X-axis" = 12596,
    // (undocumented)
    "Sensor: Acceleration Y-axis" = 12597,
    // (undocumented)
    "Sensor: Acceleration Z-axis" = 12598,
    // (undocumented)
    "Sensor: Air flow" = 12562,
    // (undocumented)
    "Sensor: Air temperature" = 12545,
    // (undocumented)
    "Sensor: Angle position" = 12565,
    // (undocumented)
    "Sensor: Applied force on the sensor" = 12615,
    // (undocumented)
    "Sensor: Atmospheric pressure" = 12552,
    // (undocumented)
    "Sensor: Barometric pressure" = 12553,
    // (undocumented)
    "Sensor: Basis metabolic rate (BMR)" = 12594,
    // (undocumented)
    "Sensor: Blood pressure" = 12589,
    // (undocumented)
    "Sensor: Body Mass Index (BMI)" = 12595,
    // (undocumented)
    "Sensor: Boiler water temperature" = 12606,
    // (undocumented)
    "Sensor: Bone mass" = 12592,
    // (undocumented)
    "Sensor: Carbon dioxide (CO2) level" = 12561,
    // (undocumented)
    "Sensor: Carbon monoxide (CO) level" = 12584,
    // (undocumented)
    "Sensor: Condenser Coil temperature" = 12618,
    // (undocumented)
    "Sensor: Current" = 12560,
    // (undocumented)
    "Sensor: Defrost temperature" = 12624,
    // (undocumented)
    "Sensor: Dew point" = 12555,
    // (undocumented)
    "Sensor: Direction" = 12551,
    // (undocumented)
    "Sensor: Discharge Line temperature" = 12621,
    // (undocumented)
    "Sensor: Discharge Pressure" = 12623,
    // (undocumented)
    "Sensor: Distance" = 12564,
    // (undocumented)
    "Sensor: Domestic Hot Water (DHW) temperature" = 12607,
    // (undocumented)
    "Sensor: Electrical conductivity" = 12573,
    // (undocumented)
    "Sensor: Electrical resistivity" = 12572,
    // (undocumented)
    "Sensor: Evaporator Coil temperature" = 12619,
    // (undocumented)
    "Sensor: Exhaust temperature" = 12609,
    // (undocumented)
    "Sensor: Fat mass" = 12591,
    // (undocumented)
    "Sensor: Formaldehyde (CH2O) level" = 12580,
    // (undocumented)
    "Sensor: Frequency" = 12576,
    // (undocumented)
    "Sensor: General purpose" = 12546,
    // (undocumented)
    "Sensor: Heart Rate LF/HF ratio" = 12613,
    // (undocumented)
    "Sensor: Heart rate" = 12588,
    // (undocumented)
    "Sensor: Humidity" = 12549,
    // (undocumented)
    "Sensor: Illuminance" = 12547,
    // (undocumented)
    "Sensor: Liquid Line temperature" = 12620,
    // (undocumented)
    "Sensor: Loudness" = 12574,
    // (undocumented)
    "Sensor: Methane (CH4) density" = 12582,
    // (undocumented)
    "Sensor: Moisture" = 12575,
    // (undocumented)
    "Sensor: Motion Direction" = 12614,
    // (undocumented)
    "Sensor: Muscle mass" = 12590,
    // (undocumented)
    "Sensor: Outside temperature" = 12608,
    // (undocumented)
    "Sensor: Particulate Matter 10" = 12603,
    // (undocumented)
    "Sensor: Particulate Matter 2.5" = 12579,
    // (undocumented)
    "Sensor: Power" = 12548,
    // (undocumented)
    "Sensor: Radon concentration" = 12581,
    // (undocumented)
    "Sensor: Rain rate" = 12556,
    // (undocumented)
    "Sensor: Relative Modulation level" = 12605,
    // (undocumented)
    "Sensor: Respiratory rate" = 12604,
    // (undocumented)
    "Sensor: Return Air temperature" = 12616,
    // (undocumented)
    "Sensor: RF signal strength" = 12602,
    // (undocumented)
    "Sensor: Rotation" = 12566,
    // (undocumented)
    "Sensor: Seismic Intensity" = 12569,
    // (undocumented)
    "Sensor: Seismic magnitude" = 12570,
    // (undocumented)
    "Sensor: Smoke density" = 12599,
    // (undocumented)
    "Sensor: Soil humidity" = 12585,
    // (undocumented)
    "Sensor: Soil reactivity" = 12586,
    // (undocumented)
    "Sensor: Soil salinity" = 12587,
    // (undocumented)
    "Sensor: Soil temperature" = 12568,
    // (undocumented)
    "Sensor: Solar radiation" = 12554,
    // (undocumented)
    "Sensor: Suction Pressure" = 12622,
    // (undocumented)
    "Sensor: Supply Air temperature" = 12617,
    // (undocumented)
    "Sensor: Tank capacity" = 12563,
    // (undocumented)
    "Sensor: Target temperature" = 12578,
    // (undocumented)
    "Sensor: Tide level" = 12557,
    // (undocumented)
    "Sensor: Time" = 12577,
    // (undocumented)
    "Sensor: Total body water (TBW)" = 12593,
    // (undocumented)
    "Sensor: Ultraviolet" = 12571,
    // (undocumented)
    "Sensor: Velocity" = 12550,
    // (undocumented)
    "Sensor: Volatile Organic Compound level" = 12583,
    // (undocumented)
    "Sensor: Voltage" = 12559,
    // (undocumented)
    "Sensor: Water acidity" = 12611,
    // (undocumented)
    "Sensor: Water Chlorine level" = 12610,
    // (undocumented)
    "Sensor: Water flow" = 12600,
    // (undocumented)
    "Sensor: Water Oxidation reduction potential" = 12612,
    // (undocumented)
    "Sensor: Water pressure" = 12601,
    // (undocumented)
    "Sensor: Water temperature" = 12567,
    // (undocumented)
    "Sensor: Weight" = 12558
}

// Warning: (ae-missing-release-tag) "BarrierOperatorCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BarrierOperatorCC extends CommandClass {
    // (undocumented)
    ccCommand: BarrierOperatorCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "BarrierOperatorCCEventSignalingGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BarrierOperatorCCEventSignalingGet extends BarrierOperatorCC {
    constructor(options: WithAddress<BarrierOperatorCCEventSignalingGetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): BarrierOperatorCCEventSignalingGet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    subsystemType: SubsystemType;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "BarrierOperatorCCEventSignalingGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface BarrierOperatorCCEventSignalingGetOptions {
    // (undocumented)
    subsystemType: SubsystemType;
}

// Warning: (ae-missing-release-tag) "BarrierOperatorCCEventSignalingReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BarrierOperatorCCEventSignalingReport extends BarrierOperatorCC {
    constructor(options: WithAddress<BarrierOperatorCCEventSignalingReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): BarrierOperatorCCEventSignalingReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    readonly subsystemState: SubsystemState;
    // (undocumented)
    readonly subsystemType: SubsystemType;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "BarrierOperatorCCEventSignalingReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface BarrierOperatorCCEventSignalingReportOptions {
    // (undocumented)
    subsystemState: SubsystemState;
    // (undocumented)
    subsystemType: SubsystemType;
}

// Warning: (ae-missing-release-tag) "BarrierOperatorCCEventSignalingSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BarrierOperatorCCEventSignalingSet extends BarrierOperatorCC {
    constructor(options: WithAddress<BarrierOperatorCCEventSignalingSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): BarrierOperatorCCEventSignalingSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    subsystemState: SubsystemState;
    // (undocumented)
    subsystemType: SubsystemType;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "BarrierOperatorCCEventSignalingSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface BarrierOperatorCCEventSignalingSetOptions {
    // (undocumented)
    subsystemState: SubsystemState;
    // (undocumented)
    subsystemType: SubsystemType;
}

// Warning: (ae-missing-release-tag) "BarrierOperatorCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BarrierOperatorCCGet extends BarrierOperatorCC {
}

// Warning: (ae-missing-release-tag) "BarrierOperatorCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BarrierOperatorCCReport extends BarrierOperatorCC {
    constructor(options: WithAddress<BarrierOperatorCCReportOptions>);
    // (undocumented)
    readonly currentState: MaybeUnknown<BarrierState>;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): BarrierOperatorCCReport;
    // (undocumented)
    readonly position: MaybeUnknown<number>;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "BarrierOperatorCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface BarrierOperatorCCReportOptions {
    // (undocumented)
    currentState: MaybeUnknown<BarrierState>;
    // (undocumented)
    position: MaybeUnknown<number>;
}

// Warning: (ae-missing-release-tag) "BarrierOperatorCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BarrierOperatorCCSet extends BarrierOperatorCC {
    constructor(options: WithAddress<BarrierOperatorCCSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): BarrierOperatorCCSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    targetState: BarrierState.Open | BarrierState.Closed;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "BarrierOperatorCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface BarrierOperatorCCSetOptions {
    // (undocumented)
    targetState: BarrierState.Open | BarrierState.Closed;
}

// Warning: (ae-missing-release-tag) "BarrierOperatorCCSignalingCapabilitiesGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BarrierOperatorCCSignalingCapabilitiesGet extends BarrierOperatorCC {
}

// Warning: (ae-missing-release-tag) "BarrierOperatorCCSignalingCapabilitiesReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BarrierOperatorCCSignalingCapabilitiesReport extends BarrierOperatorCC {
    constructor(options: WithAddress<BarrierOperatorCCSignalingCapabilitiesReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): BarrierOperatorCCSignalingCapabilitiesReport;
    // (undocumented)
    readonly supportedSubsystemTypes: readonly SubsystemType[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "BarrierOperatorCCSignalingCapabilitiesReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface BarrierOperatorCCSignalingCapabilitiesReportOptions {
    // (undocumented)
    supportedSubsystemTypes: SubsystemType[];
}

// Warning: (ae-missing-release-tag) "BarrierOperatorCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const BarrierOperatorCCValues: Readonly<{
    signalingState: ((subsystemType: SubsystemType) => {
        readonly meta: {
            readonly label: `Signaling State (${string})`;
            readonly states: {
                [x: number]: string;
            };
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Barrier Operator"];
            property: "signalingState";
            propertyKey: SubsystemType;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Barrier Operator"];
            readonly endpoint: number;
            readonly property: "signalingState";
            readonly propertyKey: SubsystemType;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    currentState: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Barrier Operator"];
            property: "currentState";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Barrier Operator"];
            readonly endpoint: number;
            readonly property: "currentState";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Current Barrier State";
            readonly states: {
                [x: number]: string;
            };
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    targetState: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Barrier Operator"];
            property: "targetState";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Barrier Operator"];
            readonly endpoint: number;
            readonly property: "targetState";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Target Barrier State";
            readonly states: {
                [x: number]: string;
            };
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    position: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Barrier Operator"];
            property: "position";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Barrier Operator"];
            readonly endpoint: number;
            readonly property: "position";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Barrier Position";
            readonly unit: "%";
            readonly max: 100;
            readonly writeable: false;
            readonly min: 0;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    supportedSubsystemTypes: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Barrier Operator"];
            property: "supportedSubsystemTypes";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Barrier Operator"];
            readonly endpoint: number;
            readonly property: "supportedSubsystemTypes";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "BarrierOperatorCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum BarrierOperatorCommand {
    // (undocumented)
    EventSignalingGet = 7,
    // (undocumented)
    EventSignalingReport = 8,
    // (undocumented)
    EventSignalingSet = 6,
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1,
    // (undocumented)
    SignalingCapabilitiesGet = 4,
    // (undocumented)
    SignalingCapabilitiesReport = 5
}

// Warning: (ae-missing-release-tag) "BarrierState" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum BarrierState {
    // (undocumented)
    Closed = 0,
    // (undocumented)
    Closing = 252,
    // (undocumented)
    Open = 255,
    // (undocumented)
    Opening = 254,
    // (undocumented)
    Stopped = 253
}

// Warning: (ae-missing-release-tag) "BasicCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BasicCC extends CommandClass {
    // (undocumented)
    ccCommand: BasicCommand;
    // (undocumented)
    getDefinedValueIDs(ctx: GetValueDB_2 & GetSupportedCCVersion_2 & GetDeviceConfig_2 & GetNode_2<NodeId & GetEndpoint<EndpointId_2 & SupportsCC & ControlsCC>>): ValueID_2[];
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "BasicCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BasicCCGet extends BasicCC {
}

// Warning: (ae-missing-release-tag) "BasicCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BasicCCReport extends BasicCC {
    constructor(options: WithAddress<BasicCCReportOptions>);
    // (undocumented)
    currentValue: MaybeUnknown<number> | undefined;
    // (undocumented)
    readonly duration: Duration | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): BasicCCReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly targetValue: MaybeUnknown<number> | undefined;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "BasicCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface BasicCCReportOptions {
    // (undocumented)
    currentValue?: MaybeUnknown<number>;
    // (undocumented)
    duration?: Duration;
    // (undocumented)
    targetValue?: MaybeUnknown<number>;
}

// Warning: (ae-missing-release-tag) "BasicCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BasicCCSet extends BasicCC {
    constructor(options: WithAddress<BasicCCSetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): BasicCCSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    targetValue: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "BasicCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface BasicCCSetOptions {
    // (undocumented)
    targetValue: number;
}

// Warning: (ae-missing-release-tag) "BasicCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const BasicCCValues: Readonly<{
    compatEvent: {
        readonly id: {
            commandClass: CommandClasses.Basic;
            property: "event";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Basic;
            readonly endpoint: number;
            readonly property: "event";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Event value";
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly stateful: false;
            readonly autoCreate: false;
        };
    };
    restorePrevious: {
        readonly id: {
            commandClass: CommandClasses.Basic;
            property: "restorePrevious";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Basic;
            readonly endpoint: number;
            readonly property: "restorePrevious";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Restore previous value";
            readonly states: {
                true: string;
            };
            readonly readable: false;
            readonly type: "boolean";
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    duration: {
        readonly id: {
            commandClass: CommandClasses.Basic;
            property: "duration";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Basic;
            readonly endpoint: number;
            readonly property: "duration";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Remaining duration";
            readonly minVersion: number;
            readonly writeable: false;
            readonly type: "duration";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    targetValue: {
        readonly id: {
            commandClass: CommandClasses.Basic;
            property: "targetValue";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Basic;
            readonly endpoint: number;
            readonly property: "targetValue";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Target value";
            readonly forceCreation: boolean;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    currentValue: {
        readonly id: {
            commandClass: CommandClasses.Basic;
            property: "currentValue";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Basic;
            readonly endpoint: number;
            readonly property: "currentValue";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Current value";
            readonly writeable: false;
            readonly max: 99;
            readonly min: 0;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "BasicCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum BasicCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1
}

// Warning: (ae-missing-release-tag) "BatteryCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BatteryCC extends CommandClass {
    // (undocumented)
    ccCommand: BatteryCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
    // (undocumented)
    shouldRefreshValues(this: SinglecastCC_2<this>, ctx: GetValueDB_2 & GetSupportedCCVersion_2 & GetDeviceConfig_2 & GetNode_2<NodeId & GetEndpoint<EndpointId_2 & SupportsCC & ControlsCC>>): boolean;
}

// Warning: (ae-missing-release-tag) "BatteryCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BatteryCCGet extends BatteryCC {
}

// Warning: (ae-missing-release-tag) "BatteryCCHealthGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BatteryCCHealthGet extends BatteryCC {
}

// Warning: (ae-missing-release-tag) "BatteryCCHealthReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BatteryCCHealthReport extends BatteryCC {
    constructor(options: WithAddress_2<BatteryCCHealthReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): BatteryCCHealthReport;
    // (undocumented)
    readonly maximumCapacity: number | undefined;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    readonly temperature: number | undefined;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "BatteryCCHealthReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface BatteryCCHealthReportOptions {
    // (undocumented)
    maximumCapacity?: number;
    // (undocumented)
    temperature?: number;
    // (undocumented)
    temperatureScale?: number;
}

// Warning: (ae-missing-release-tag) "BatteryCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BatteryCCReport extends BatteryCC {
    constructor(options: WithAddress_2<BatteryCCReportOptions>);
    // (undocumented)
    readonly backup: boolean | undefined;
    // (undocumented)
    readonly chargingStatus: BatteryChargingStatus | undefined;
    // (undocumented)
    readonly disconnected: boolean | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): BatteryCCReport;
    // (undocumented)
    readonly isLow: boolean;
    // (undocumented)
    readonly level: number;
    // (undocumented)
    readonly lowFluid: boolean | undefined;
    // (undocumented)
    readonly lowTemperatureStatus: boolean | undefined;
    // (undocumented)
    readonly overheating: boolean | undefined;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    readonly rechargeable: boolean | undefined;
    // (undocumented)
    readonly rechargeOrReplace: BatteryReplacementStatus | undefined;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "BatteryCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type BatteryCCReportOptions = ({
    isLow?: false;
    level: number;
} | {
    isLow: true;
    level?: undefined;
}) & AllOrNone<{
    chargingStatus: BatteryChargingStatus;
    rechargeable: boolean;
    backup: boolean;
    overheating: boolean;
    lowFluid: boolean;
    rechargeOrReplace: BatteryReplacementStatus;
    disconnected: boolean;
}> & AllOrNone<{
    lowTemperatureStatus: boolean;
}>;

// Warning: (ae-missing-release-tag) "BatteryCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const BatteryCCValues: Readonly<{
    lowTemperatureStatus: {
        readonly id: {
            commandClass: CommandClasses.Battery;
            property: "lowTemperatureStatus";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Battery;
            readonly endpoint: number;
            readonly property: "lowTemperatureStatus";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly label: "Battery temperature is low";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 3;
        };
    };
    disconnected: {
        readonly id: {
            commandClass: CommandClasses.Battery;
            property: "disconnected";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Battery;
            readonly endpoint: number;
            readonly property: "disconnected";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly label: "Battery is disconnected";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 2;
        };
    };
    rechargeOrReplace: {
        readonly id: {
            commandClass: CommandClasses.Battery;
            property: "rechargeOrReplace";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Battery;
            readonly endpoint: number;
            readonly property: "rechargeOrReplace";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly label: "Recharge or replace";
            readonly states: {
                [x: number]: string;
            };
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 2;
        };
    };
    lowFluid: {
        readonly id: {
            commandClass: CommandClasses.Battery;
            property: "lowFluid";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Battery;
            readonly endpoint: number;
            readonly property: "lowFluid";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly label: "Fluid is low";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 2;
        };
    };
    overheating: {
        readonly id: {
            commandClass: CommandClasses.Battery;
            property: "overheating";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Battery;
            readonly endpoint: number;
            readonly property: "overheating";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly label: "Overheating";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 2;
        };
    };
    backup: {
        readonly id: {
            commandClass: CommandClasses.Battery;
            property: "backup";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Battery;
            readonly endpoint: number;
            readonly property: "backup";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly label: "Used as backup";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 2;
        };
    };
    rechargeable: {
        readonly id: {
            commandClass: CommandClasses.Battery;
            property: "rechargeable";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Battery;
            readonly endpoint: number;
            readonly property: "rechargeable";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly label: "Rechargeable";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 2;
        };
    };
    chargingStatus: {
        readonly id: {
            commandClass: CommandClasses.Battery;
            property: "chargingStatus";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Battery;
            readonly endpoint: number;
            readonly property: "chargingStatus";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly label: "Charging status";
            readonly states: {
                [x: number]: string;
            };
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 2;
        };
    };
    temperature: {
        readonly id: {
            commandClass: CommandClasses.Battery;
            property: "temperature";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Battery;
            readonly endpoint: number;
            readonly property: "temperature";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly label: "Temperature";
            readonly writeable: false;
            readonly min: -128;
            readonly max: 127;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 2;
        };
    };
    maximumCapacity: {
        readonly id: {
            commandClass: CommandClasses.Battery;
            property: "maximumCapacity";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Battery;
            readonly endpoint: number;
            readonly property: "maximumCapacity";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly max: 100;
            readonly unit: "%";
            readonly label: "Maximum capacity";
            readonly writeable: false;
            readonly min: 0;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 2;
        };
    };
    isLow: {
        readonly id: {
            commandClass: CommandClasses.Battery;
            property: "isLow";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Battery;
            readonly endpoint: number;
            readonly property: "isLow";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly label: "Low battery level";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    level: {
        readonly id: {
            commandClass: CommandClasses.Battery;
            property: "level";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Battery;
            readonly endpoint: number;
            readonly property: "level";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly max: 100;
            readonly unit: "%";
            readonly label: "Battery level";
            readonly writeable: false;
            readonly min: 0;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "BatteryChargingStatus" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum BatteryChargingStatus {
    // (undocumented)
    Charging = 1,
    // (undocumented)
    Discharging = 0,
    // (undocumented)
    Maintaining = 2
}

// Warning: (ae-missing-release-tag) "BatteryCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum BatteryCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    HealthGet = 4,
    // (undocumented)
    HealthReport = 5,
    // (undocumented)
    Report = 3
}

// Warning: (ae-missing-release-tag) "BatteryReplacementStatus" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum BatteryReplacementStatus {
    // (undocumented)
    No = 0,
    // (undocumented)
    Now = 2,
    // (undocumented)
    Soon = 1
}

// Warning: (ae-missing-release-tag) "BinarySensorCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BinarySensorCC extends CommandClass {
    // (undocumented)
    ccCommand: BinarySensorCommand;
    static getSupportedSensorTypesCached(ctx: GetValueDB_2, endpoint: EndpointId_2): MaybeNotKnown<BinarySensorType[]>;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
    // (undocumented)
    setMappedBasicValue(ctx: GetValueDB_2, value: number): boolean;
}

// Warning: (ae-missing-release-tag) "BinarySensorCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BinarySensorCCGet extends BinarySensorCC {
    constructor(options: WithAddress<BinarySensorCCGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): BinarySensorCCGet;
    // (undocumented)
    sensorType: BinarySensorType | undefined;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "BinarySensorCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface BinarySensorCCGetOptions {
    // (undocumented)
    sensorType?: BinarySensorType;
}

// Warning: (ae-missing-release-tag) "BinarySensorCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BinarySensorCCReport extends BinarySensorCC {
    constructor(options: WithAddress<BinarySensorCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): BinarySensorCCReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    type: BinarySensorType;
    // (undocumented)
    value: boolean;
}

// Warning: (ae-missing-release-tag) "BinarySensorCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface BinarySensorCCReportOptions {
    // (undocumented)
    type?: BinarySensorType;
    // (undocumented)
    value: boolean;
}

// Warning: (ae-missing-release-tag) "BinarySensorCCSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BinarySensorCCSupportedGet extends BinarySensorCC {
}

// Warning: (ae-missing-release-tag) "BinarySensorCCSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BinarySensorCCSupportedReport extends BinarySensorCC {
    constructor(options: WithAddress<BinarySensorCCSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): BinarySensorCCSupportedReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    supportedSensorTypes: BinarySensorType[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "BinarySensorCCSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface BinarySensorCCSupportedReportOptions {
    // (undocumented)
    supportedSensorTypes: BinarySensorType[];
}

// Warning: (ae-missing-release-tag) "BinarySensorCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const BinarySensorCCValues: Readonly<{
    state: ((sensorType: BinarySensorType) => {
        readonly meta: {
            readonly label: `Sensor state (${string})`;
            readonly ccSpecific: {
                readonly sensorType: BinarySensorType;
            };
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Binary Sensor"];
            property: string;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Binary Sensor"];
            readonly endpoint: number;
            readonly property: string;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    supportedSensorTypes: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Binary Sensor"];
            property: "supportedSensorTypes";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Binary Sensor"];
            readonly endpoint: number;
            readonly property: "supportedSensorTypes";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "BinarySensorCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum BinarySensorCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    SupportedGet = 1,
    // (undocumented)
    SupportedReport = 4
}

// Warning: (ae-missing-release-tag) "BinarySensorType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum BinarySensorType {
    // (undocumented)
    "Door/Window" = 10,
    // (undocumented)
    "General Purpose" = 1,
    // (undocumented)
    "Glass Break" = 13,
    // (undocumented)
    Any = 255,
    // (undocumented)
    Aux = 9,
    // (undocumented)
    CO = 3,
    // (undocumented)
    CO2 = 4,
    // (undocumented)
    Freeze = 7,
    // (undocumented)
    Heat = 5,
    // (undocumented)
    Motion = 12,
    // (undocumented)
    Smoke = 2,
    // (undocumented)
    Tamper = 8,
    // (undocumented)
    Tilt = 11,
    // (undocumented)
    Water = 6
}

// Warning: (ae-missing-release-tag) "BinarySensorValueMetadata" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type BinarySensorValueMetadata = ValueMetadata_2 & {
    ccSpecific: {
        sensorType: BinarySensorType;
    };
};

// Warning: (ae-missing-release-tag) "BinarySwitchCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BinarySwitchCC extends CommandClass {
    // (undocumented)
    ccCommand: BinarySwitchCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
    // (undocumented)
    setMappedBasicValue(ctx: GetValueDB_2, value: number): boolean;
}

// Warning: (ae-missing-release-tag) "BinarySwitchCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BinarySwitchCCGet extends BinarySwitchCC {
}

// Warning: (ae-missing-release-tag) "BinarySwitchCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BinarySwitchCCReport extends BinarySwitchCC {
    constructor(options: WithAddress<BinarySwitchCCReportOptions>);
    // (undocumented)
    readonly currentValue: MaybeUnknown<boolean> | undefined;
    // (undocumented)
    readonly duration: Duration | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): BinarySwitchCCReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly targetValue: MaybeUnknown<boolean> | undefined;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "BinarySwitchCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface BinarySwitchCCReportOptions {
    // (undocumented)
    currentValue?: MaybeUnknown<boolean>;
    // (undocumented)
    duration?: Duration | string;
    // (undocumented)
    targetValue?: MaybeUnknown<boolean>;
}

// Warning: (ae-missing-release-tag) "BinarySwitchCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class BinarySwitchCCSet extends BinarySwitchCC {
    constructor(options: WithAddress<BinarySwitchCCSetOptions>);
    // (undocumented)
    duration: Duration | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): BinarySwitchCCSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    targetValue: boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "BinarySwitchCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface BinarySwitchCCSetOptions {
    // (undocumented)
    duration?: Duration | string;
    // (undocumented)
    targetValue: boolean;
}

// Warning: (ae-missing-release-tag) "BinarySwitchCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const BinarySwitchCCValues: Readonly<{
    duration: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Binary Switch"];
            property: "duration";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Binary Switch"];
            readonly endpoint: number;
            readonly property: "duration";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Remaining duration";
            readonly writeable: false;
            readonly type: "duration";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 2;
        };
    };
    targetValue: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Binary Switch"];
            property: "targetValue";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Binary Switch"];
            readonly endpoint: number;
            readonly property: "targetValue";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Target value";
            readonly valueChangeOptions: readonly ["transitionDuration"];
            readonly type: "boolean";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    currentValue: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Binary Switch"];
            property: "currentValue";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Binary Switch"];
            readonly endpoint: number;
            readonly property: "currentValue";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Current value";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "BinarySwitchCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum BinarySwitchCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "CCAPI" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export class CCAPI {
    // (undocumented)
    protected get [POLL_VALUE](): PollValueImplementation | undefined;
    // (undocumented)
    protected get [SET_VALUE](): SetValueImplementation | undefined;
    // (undocumented)
    protected [SET_VALUE_HOOKS]: SetValueImplementationHooksFactory | undefined;
    constructor(host: CCAPIHost, endpoint: CCAPIEndpoint);
    // (undocumented)
    protected assertPhysicalEndpoint(endpoint: EndpointId | VirtualEndpointId): asserts endpoint is EndpointId;
    // (undocumented)
    protected assertSupportsCommand(commandEnum: unknown, command: number): void;
    readonly ccId: CommandClasses_2;
    protected get commandOptions(): SendCommandOptions;
    // (undocumented)
    static create<T extends CommandClasses_2>(ccId: T, host: CCAPIHost, endpoint: CCAPIEndpoint, requireSupport?: boolean): CommandClasses_2 extends T ? CCAPI : CCToAPI<T>;
    // (undocumented)
    protected readonly endpoint: CCAPIEndpoint;
    protected getValueDB(): ValueDB;
    // (undocumented)
    protected readonly host: CCAPIHost;
    // (undocumented)
    protected isBroadcast(): this is this & {
        endpoint: VirtualCCAPIEndpoint & {
            nodeId: typeof NODE_ID_BROADCAST | typeof NODE_ID_BROADCAST_LR;
        };
    };
    // (undocumented)
    protected isMulticast(): this is this & {
        endpoint: VirtualCCAPIEndpoint & {
            nodeId: number[];
        };
    };
    isSetValueOptimistic(valueId: ValueID): boolean;
    // (undocumented)
    protected isSinglecast(): this is this & {
        endpoint: PhysicalCCAPIEndpoint;
    };
    isSupported(): boolean;
    get pollValue(): PollValueImplementation | undefined;
    protected schedulePoll({ property, propertyKey }: ValueIDProperties, expectedValue: unknown, { duration, transition }?: SchedulePollOptions): boolean;
    get setValue(): SetValueImplementation | undefined;
    get setValueHooks(): SetValueImplementationHooksFactory | undefined;
    // Warning: (ae-unresolved-link) The @link reference could not be resolved: The package "@zwave-js/cc" does not have an export "NOT_KNOWN"
    supportsCommand(command: number): MaybeNotKnown_2<boolean>;
    protected tryGetValueDB(): ValueDB | undefined;
    get version(): number;
    withOptions(options: SendCommandOptions): this;
    withTXReport<T extends this>(): WithTXReport<T>;
}

// Warning: (ae-missing-release-tag) "CCAPIEndpoint" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type CCAPIEndpoint = ((EndpointId & ControlsCC_2) | (VirtualEndpointId & {
    node: PhysicalNodes<NodeId_2 & SupportsCC_2 & ControlsCC_2 & GetEndpoint_2<EndpointId & SupportsCC_2 & ControlsCC_2>>;
})) & SupportsCC_2;

// Warning: (ae-missing-release-tag) "CCAPIHost" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type CCAPIHost<TNode extends CCAPINode = CCAPINode> = HostIDs & GetNode<TNode> & GetValueDB & GetSupportedCCVersion & GetSafeCCVersion & SecurityManagers & GetDeviceConfig & SendCommand & GetCommunicationTimeouts & GetUserPreferences & SchedulePoll & LogNode;

// Warning: (ae-missing-release-tag) "CCAPINode" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type CCAPINode = NodeId_2 & ListenBehavior & QueryNodeStatus;

// Warning: (ae-missing-release-tag) "CCAPIs" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface CCAPIs {
    // (undocumented)
    "Alarm Sensor": AlarmSensorCCAPI;
    // (undocumented)
    "Association Group Information": AssociationGroupInfoCCAPI;
    // (undocumented)
    "Barrier Operator": BarrierOperatorCCAPI;
    // (undocumented)
    "Binary Sensor": BinarySensorCCAPI;
    // (undocumented)
    "Binary Switch": BinarySwitchCCAPI;
    // (undocumented)
    "Central Scene": CentralSceneCCAPI;
    // (undocumented)
    "Climate Control Schedule": ClimateControlScheduleCCAPI;
    // (undocumented)
    "Color Switch": ColorSwitchCCAPI;
    // (undocumented)
    "CRC-16 Encapsulation": CRC16CCAPI;
    // (undocumented)
    "Device Reset Locally": DeviceResetLocallyCCAPI;
    // (undocumented)
    "Door Lock Logging": DoorLockLoggingCCAPI;
    // (undocumented)
    "Door Lock": DoorLockCCAPI;
    // (undocumented)
    "Energy Production": EnergyProductionCCAPI;
    // (undocumented)
    "Entry Control": EntryControlCCAPI;
    // (undocumented)
    "Firmware Update Meta Data": FirmwareUpdateMetaDataCCAPI;
    // (undocumented)
    "Humidity Control Mode": HumidityControlModeCCAPI;
    // (undocumented)
    "Humidity Control Operating State": HumidityControlOperatingStateCCAPI;
    // (undocumented)
    "Humidity Control Setpoint": HumidityControlSetpointCCAPI;
    // (undocumented)
    "Inclusion Controller": InclusionControllerCCAPI;
    // (undocumented)
    "Manufacturer Proprietary": ManufacturerProprietaryCCAPI;
    // (undocumented)
    "Manufacturer Specific": ManufacturerSpecificCCAPI;
    // (undocumented)
    "Multi Channel Association": MultiChannelAssociationCCAPI;
    // (undocumented)
    "Multi Channel": MultiChannelCCAPI;
    // (undocumented)
    "Multi Command": MultiCommandCCAPI;
    // (undocumented)
    "Multilevel Sensor": MultilevelSensorCCAPI;
    // (undocumented)
    "Multilevel Switch": MultilevelSwitchCCAPI;
    // (undocumented)
    "No Operation": NoOperationCCAPI;
    // (undocumented)
    "Node Naming and Location": NodeNamingAndLocationCCAPI;
    // (undocumented)
    "Scene Activation": SceneActivationCCAPI;
    // (undocumented)
    "Scene Actuator Configuration": SceneActuatorConfigurationCCAPI;
    // (undocumented)
    "Scene Controller Configuration": SceneControllerConfigurationCCAPI;
    // (undocumented)
    "Schedule Entry Lock": ScheduleEntryLockCCAPI;
    // (undocumented)
    "Security 2": Security2CCAPI;
    // (undocumented)
    "Sound Switch": SoundSwitchCCAPI;
    // (undocumented)
    "Thermostat Fan Mode": ThermostatFanModeCCAPI;
    // (undocumented)
    "Thermostat Fan State": ThermostatFanStateCCAPI;
    // (undocumented)
    "Thermostat Mode": ThermostatModeCCAPI;
    // (undocumented)
    "Thermostat Operating State": ThermostatOperatingStateCCAPI;
    // (undocumented)
    "Thermostat Setback": ThermostatSetbackCCAPI;
    // (undocumented)
    "Thermostat Setpoint": ThermostatSetpointCCAPI;
    // (undocumented)
    "Time Parameters": TimeParametersCCAPI;
    // (undocumented)
    "User Code": UserCodeCCAPI;
    // (undocumented)
    "Wake Up": WakeUpCCAPI;
    // (undocumented)
    "Window Covering": WindowCoveringCCAPI;
    // (undocumented)
    "Z-Wave Plus Info": ZWavePlusCCAPI;
    // (undocumented)
    [Symbol.iterator](): Iterator<CCAPI>;
    // (undocumented)
    Association: AssociationCCAPI;
    // (undocumented)
    Basic: BasicCCAPI;
    // (undocumented)
    Battery: BatteryCCAPI;
    // (undocumented)
    Clock: ClockCCAPI;
    // (undocumented)
    Configuration: ConfigurationCCAPI;
    // (undocumented)
    Indicator: IndicatorCCAPI;
    // (undocumented)
    Irrigation: IrrigationCCAPI;
    // (undocumented)
    Language: LanguageCCAPI;
    // (undocumented)
    Lock: LockCCAPI;
    // (undocumented)
    Meter: MeterCCAPI;
    // (undocumented)
    Notification: NotificationCCAPI;
    // (undocumented)
    Powerlevel: PowerlevelCCAPI;
    // (undocumented)
    Protection: ProtectionCCAPI;
    // (undocumented)
    Security: SecurityCCAPI;
    // (undocumented)
    Supervision: SupervisionCCAPI;
    // (undocumented)
    Time: TimeCCAPI;
    // (undocumented)
    Version: VersionCCAPI;
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "CCCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const CCCommand: <TTarget extends typeof CommandClass>(ccCommand: number) => TypedClassDecorator_2<TTarget>;

// Warning: (ae-missing-release-tag) "CCConstructor" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type CCConstructor<T extends CommandClass> = typeof CommandClass & {
    new (options: any): T;
};

// Warning: (ae-missing-release-tag) "CCEndpoint" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type CCEndpoint = EndpointId & SupportsCC_2 & ControlsCC_2 & GetCCs & ModifyCCs;

// Warning: (ae-missing-release-tag) "CCNameOrId" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type CCNameOrId = CommandClasses_2 | Extract<keyof CCAPIs, string>;

// Warning: (ae-missing-release-tag) "CCNode" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type CCNode = NodeId_2 & SupportsCC_2 & ControlsCC_2 & GetCCs & GetEndpoint_2<CCEndpoint> & GetAllEndpoints_2<CCEndpoint> & QuerySecurityClasses_2 & SetSecurityClass & ListenBehavior & QueryNodeStatus;

// Warning: (ae-missing-release-tag) "CCRaw" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class CCRaw {
    constructor(ccId: CommandClasses_2, ccCommand: number | undefined, payload: Bytes_2);
    // (undocumented)
    ccCommand: number | undefined;
    // (undocumented)
    ccId: CommandClasses_2;
    // (undocumented)
    static parse(data: Uint8Array): CCRaw;
    // (undocumented)
    payload: Bytes_2;
    // (undocumented)
    withPayload(payload: Bytes_2): CCRaw;
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "CCResponsePredicate" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type CCResponsePredicate<TSent extends CommandClass, TReceived extends CommandClass = CommandClass> = (sentCommand: TSent, receivedCommand: TReceived) => CCResponseRole;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "CCResponseRole" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type CCResponseRole = boolean | "checkEncapsulated";

// Warning: (ae-missing-release-tag) "CCToAPI" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type CCToAPI<CC extends CCNameOrId> = CC extends CommandClasses_2 ? CCToName<CC> extends keyof CCAPIs ? CCAPIs[CCToName<CC>] : never : CC extends keyof CCAPIs ? CCAPIs[CC] : never;

// Warning: (ae-forgotten-export) The symbol "CCNameMap" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "CCToName" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type CCToName<CC extends CommandClasses_2> = {
    [K in keyof CCNameMap]: CCNameMap[K] extends CC ? K : never;
}[keyof CCNameMap];

// Warning: (ae-missing-release-tag) "CCValueOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface CCValueOptions {
    autoCreate?: boolean | ((ctx: GetValueDB & GetDeviceConfig, endpoint: EndpointId) => boolean);
    internal?: boolean;
    minVersion?: number;
    secret?: boolean;
    stateful?: boolean;
    supportsEndpoints?: boolean;
}

// Warning: (ae-missing-release-tag) "CCValuePredicate" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type CCValuePredicate = (valueId: ValueID) => boolean;

// Warning: (ae-forgotten-export) The symbol "StaticCCValue" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "ccValueProperty" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
// Warning: (ae-missing-release-tag) "ccValueProperty" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function ccValueProperty<Class extends abstract new (...args: any) => any>(property: keyof InstanceType<Class>, value: StaticCCValue): TypedClassDecorator_2<Class>;

// Warning: (ae-forgotten-export) The symbol "DynamicCCValue" needs to be exported by the entry point index.d.ts
//
// @public (undocumented)
export function ccValueProperty<Class extends abstract new (...args: any) => any, const TArgs extends any[]>(property: keyof InstanceType<Class>, value: DynamicCCValue<TArgs>, getArgs: (self: InstanceType<Class>) => TArgs): TypedClassDecorator_2<Class>;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "ccValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const ccValues: <TTarget extends typeof CommandClass>(valueDefinition: Record<string, StaticCCValue | DynamicCCValue>) => TypedClassDecorator_2<TTarget>;

// Warning: (ae-missing-release-tag) "CentralSceneCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class CentralSceneCC extends CommandClass {
    // (undocumented)
    ccCommand: CentralSceneCommand;
    // (undocumented)
    determineRequiredCCInterviews(): readonly CommandClasses[];
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    skipEndpointInterview(): boolean;
}

// Warning: (ae-missing-release-tag) "CentralSceneCCConfigurationGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class CentralSceneCCConfigurationGet extends CentralSceneCC {
}

// Warning: (ae-missing-release-tag) "CentralSceneCCConfigurationReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class CentralSceneCCConfigurationReport extends CentralSceneCC {
    constructor(options: WithAddress<CentralSceneCCConfigurationReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): CentralSceneCCConfigurationReport;
    // (undocumented)
    readonly slowRefresh: boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "CentralSceneCCConfigurationReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface CentralSceneCCConfigurationReportOptions {
    // (undocumented)
    slowRefresh: boolean;
}

// Warning: (ae-missing-release-tag) "CentralSceneCCConfigurationSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class CentralSceneCCConfigurationSet extends CentralSceneCC {
    constructor(options: WithAddress<CentralSceneCCConfigurationSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): CentralSceneCCConfigurationSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    slowRefresh: boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "CentralSceneCCConfigurationSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface CentralSceneCCConfigurationSetOptions {
    // (undocumented)
    slowRefresh: boolean;
}

// Warning: (ae-missing-release-tag) "CentralSceneCCNotification" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class CentralSceneCCNotification extends CentralSceneCC {
    constructor(options: WithAddress<CentralSceneCCNotificationOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): CentralSceneCCNotification;
    // (undocumented)
    readonly keyAttribute: CentralSceneKeys;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    readonly sceneNumber: number;
    // (undocumented)
    readonly sequenceNumber: number;
    // (undocumented)
    readonly slowRefresh: boolean | undefined;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "CentralSceneCCNotificationOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface CentralSceneCCNotificationOptions {
    // (undocumented)
    keyAttribute: CentralSceneKeys;
    // (undocumented)
    sceneNumber: number;
    // (undocumented)
    sequenceNumber: number;
    // (undocumented)
    slowRefresh?: boolean;
}

// Warning: (ae-missing-release-tag) "CentralSceneCCSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class CentralSceneCCSupportedGet extends CentralSceneCC {
}

// Warning: (ae-missing-release-tag) "CentralSceneCCSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class CentralSceneCCSupportedReport extends CentralSceneCC {
    constructor(options: WithAddress<CentralSceneCCSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): CentralSceneCCSupportedReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    readonly sceneCount: number;
    // (undocumented)
    get supportedKeyAttributes(): ReadonlyMap<number, readonly CentralSceneKeys[]>;
    // (undocumented)
    readonly supportsSlowRefresh: MaybeNotKnown<boolean>;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "CentralSceneCCSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface CentralSceneCCSupportedReportOptions {
    // (undocumented)
    sceneCount: number;
    // (undocumented)
    supportedKeyAttributes: Record<number, readonly CentralSceneKeys[]>;
    // (undocumented)
    supportsSlowRefresh: MaybeNotKnown<boolean>;
}

// Warning: (ae-missing-release-tag) "CentralSceneCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const CentralSceneCCValues: Readonly<{
    scene: ((sceneNumber: number) => {
        readonly meta: {
            readonly label: `Scene ${string}`;
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Central Scene"];
            property: "scene";
            propertyKey: string;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Central Scene"];
            readonly endpoint: number;
            readonly property: "scene";
            readonly propertyKey: string;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly stateful: false;
        };
    };
    slowRefresh: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Central Scene"];
            property: "slowRefresh";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Central Scene"];
            readonly endpoint: number;
            readonly property: "slowRefresh";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Send held down notifications at a slow rate";
            readonly description: "When this is true, KeyHeldDown notifications are sent every 55s. When this is false, the notifications are sent every 200ms.";
            readonly type: "boolean";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    supportedKeyAttributes: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Central Scene"];
            property: "supportedKeyAttributes";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Central Scene"];
            readonly endpoint: number;
            readonly property: "supportedKeyAttributes";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportsSlowRefresh: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Central Scene"];
            property: "supportsSlowRefresh";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Central Scene"];
            readonly endpoint: number;
            readonly property: "supportsSlowRefresh";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    sceneCount: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Central Scene"];
            property: "sceneCount";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Central Scene"];
            readonly endpoint: number;
            readonly property: "sceneCount";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "CentralSceneCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum CentralSceneCommand {
    // (undocumented)
    ConfigurationGet = 5,
    // (undocumented)
    ConfigurationReport = 6,
    // (undocumented)
    ConfigurationSet = 4,
    // (undocumented)
    Notification = 3,
    // (undocumented)
    SupportedGet = 1,
    // (undocumented)
    SupportedReport = 2
}

// Warning: (ae-missing-release-tag) "CentralSceneKeys" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum CentralSceneKeys {
    // (undocumented)
    KeyHeldDown = 2,
    // (undocumented)
    KeyPressed = 0,
    // (undocumented)
    KeyPressed2x = 3,
    // (undocumented)
    KeyPressed3x = 4,
    // (undocumented)
    KeyPressed4x = 5,
    // (undocumented)
    KeyPressed5x = 6,
    // (undocumented)
    KeyReleased = 1
}

// Warning: (ae-missing-release-tag) "checkAssociation" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
function checkAssociation(ctx: HostIDs & GetValueDB & GetNode<NodeId & SupportsCC & GetEndpoint<EndpointId_2 & SupportsCC> & QuerySecurityClasses>, endpoint: EndpointId_2 & SupportsCC & ControlsCC, group: number, destination: AssociationAddress): AssociationCheckResult;

// Warning: (ae-missing-release-tag) "ClimateControlScheduleCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ClimateControlScheduleCC extends CommandClass {
    // (undocumented)
    ccCommand: ClimateControlScheduleCommand;
}

// Warning: (ae-missing-release-tag) "ClimateControlScheduleCCChangedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ClimateControlScheduleCCChangedGet extends ClimateControlScheduleCC {
}

// Warning: (ae-missing-release-tag) "ClimateControlScheduleCCChangedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ClimateControlScheduleCCChangedReport extends ClimateControlScheduleCC {
    constructor(options: WithAddress<ClimateControlScheduleCCChangedReportOptions>);
    // (undocumented)
    readonly changeCounter: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ClimateControlScheduleCCChangedReport;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ClimateControlScheduleCCChangedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ClimateControlScheduleCCChangedReportOptions {
    // (undocumented)
    changeCounter: number;
}

// Warning: (ae-missing-release-tag) "ClimateControlScheduleCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ClimateControlScheduleCCGet extends ClimateControlScheduleCC {
    constructor(options: WithAddress<ClimateControlScheduleCCGetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): ClimateControlScheduleCCGet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    weekday: Weekday;
}

// Warning: (ae-missing-release-tag) "ClimateControlScheduleCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ClimateControlScheduleCCGetOptions {
    // (undocumented)
    weekday: Weekday;
}

// Warning: (ae-missing-release-tag) "ClimateControlScheduleCCOverrideGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ClimateControlScheduleCCOverrideGet extends ClimateControlScheduleCC {
}

// Warning: (ae-missing-release-tag) "ClimateControlScheduleCCOverrideReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ClimateControlScheduleCCOverrideReport extends ClimateControlScheduleCC {
    constructor(options: WithAddress<ClimateControlScheduleCCOverrideReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ClimateControlScheduleCCOverrideReport;
    // (undocumented)
    readonly overrideState: SetbackState;
    // (undocumented)
    readonly overrideType: ScheduleOverrideType;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ClimateControlScheduleCCOverrideReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ClimateControlScheduleCCOverrideReportOptions {
    // (undocumented)
    overrideState: SetbackState;
    // (undocumented)
    overrideType: ScheduleOverrideType;
}

// Warning: (ae-missing-release-tag) "ClimateControlScheduleCCOverrideSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ClimateControlScheduleCCOverrideSet extends ClimateControlScheduleCC {
    constructor(options: WithAddress<ClimateControlScheduleCCOverrideSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): ClimateControlScheduleCCOverrideSet;
    // (undocumented)
    overrideState: SetbackState;
    // (undocumented)
    overrideType: ScheduleOverrideType;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ClimateControlScheduleCCOverrideSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ClimateControlScheduleCCOverrideSetOptions {
    // (undocumented)
    overrideState: SetbackState;
    // (undocumented)
    overrideType: ScheduleOverrideType;
}

// Warning: (ae-missing-release-tag) "ClimateControlScheduleCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ClimateControlScheduleCCReport extends ClimateControlScheduleCC {
    constructor(options: WithAddress<ClimateControlScheduleCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ClimateControlScheduleCCReport;
    // (undocumented)
    readonly schedule: readonly Switchpoint[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    readonly weekday: Weekday;
}

// Warning: (ae-missing-release-tag) "ClimateControlScheduleCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ClimateControlScheduleCCReportOptions {
    // (undocumented)
    schedule: Switchpoint[];
    // (undocumented)
    weekday: Weekday;
}

// Warning: (ae-missing-release-tag) "ClimateControlScheduleCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ClimateControlScheduleCCSet extends ClimateControlScheduleCC {
    constructor(options: WithAddress<ClimateControlScheduleCCSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): ClimateControlScheduleCCSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    switchPoints: Switchpoint[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    weekday: Weekday;
}

// Warning: (ae-missing-release-tag) "ClimateControlScheduleCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ClimateControlScheduleCCSetOptions {
    // (undocumented)
    switchPoints: Switchpoint[];
    // (undocumented)
    weekday: Weekday;
}

// Warning: (ae-missing-release-tag) "ClimateControlScheduleCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const ClimateControlScheduleCCValues: Readonly<{
    schedule: ((weekday: Weekday) => {
        readonly meta: {
            readonly label: `Schedule (${string})`;
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Climate Control Schedule"];
            property: "schedule";
            propertyKey: Weekday;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Climate Control Schedule"];
            readonly endpoint: number;
            readonly property: "schedule";
            readonly propertyKey: Weekday;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    overrideState: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Climate Control Schedule"];
            property: "overrideState";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Climate Control Schedule"];
            readonly endpoint: number;
            readonly property: "overrideState";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Override state";
            readonly min: -12.8;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    overrideType: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Climate Control Schedule"];
            property: "overrideType";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Climate Control Schedule"];
            readonly endpoint: number;
            readonly property: "overrideType";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Override type";
            readonly states: {
                [x: number]: string;
            };
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "ClimateControlScheduleCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ClimateControlScheduleCommand {
    // (undocumented)
    ChangedGet = 4,
    // (undocumented)
    ChangedReport = 5,
    // (undocumented)
    Get = 2,
    // (undocumented)
    OverrideGet = 7,
    // (undocumented)
    OverrideReport = 8,
    // (undocumented)
    OverrideSet = 6,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1
}

// Warning: (ae-missing-release-tag) "ClockCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ClockCC extends CommandClass {
    // (undocumented)
    ccCommand: ClockCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "ClockCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ClockCCGet extends ClockCC {
}

// Warning: (ae-missing-release-tag) "ClockCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ClockCCReport extends ClockCC {
    constructor(options: WithAddress<ClockCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ClockCCReport;
    // (undocumented)
    readonly hour: number;
    // (undocumented)
    readonly minute: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    readonly weekday: Weekday;
}

// Warning: (ae-missing-release-tag) "ClockCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ClockCCReportOptions {
    // (undocumented)
    hour: number;
    // (undocumented)
    minute: number;
    // (undocumented)
    weekday: Weekday;
}

// Warning: (ae-missing-release-tag) "ClockCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ClockCCSet extends ClockCC {
    constructor(options: WithAddress<ClockCCSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): ClockCCSet;
    // (undocumented)
    hour: number;
    // (undocumented)
    minute: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    weekday: Weekday;
}

// Warning: (ae-missing-release-tag) "ClockCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ClockCCSetOptions {
    // (undocumented)
    hour: number;
    // (undocumented)
    minute: number;
    // (undocumented)
    weekday: Weekday;
}

// Warning: (ae-missing-release-tag) "ClockCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ClockCommand {
    // (undocumented)
    Get = 5,
    // (undocumented)
    Report = 6,
    // (undocumented)
    Set = 4
}

// Warning: (ae-missing-release-tag) "ColorComponent" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ColorComponent {
    // (undocumented)
    "Cold White" = 1,
    // (undocumented)
    "Warm White" = 0,
    // (undocumented)
    Amber = 5,
    // (undocumented)
    Blue = 4,
    // (undocumented)
    Cyan = 6,
    // (undocumented)
    Green = 3,
    // (undocumented)
    Index = 8,
    // (undocumented)
    Purple = 7,
    // (undocumented)
    Red = 2
}

// Warning: (ae-missing-release-tag) "ColorComponentMap" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const ColorComponentMap: {
    warmWhite: ColorComponent;
    coldWhite: ColorComponent;
    red: ColorComponent;
    green: ColorComponent;
    blue: ColorComponent;
    amber: ColorComponent;
    cyan: ColorComponent;
    purple: ColorComponent;
    index: ColorComponent;
};

// Warning: (ae-missing-release-tag) "ColorKey" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ColorKey = keyof typeof ColorComponentMap;

// Warning: (ae-missing-release-tag) "ColorSwitchCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ColorSwitchCC extends CommandClass {
    // (undocumented)
    ccCommand: ColorSwitchCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
    // (undocumented)
    translatePropertyKey(ctx: GetValueDB_2, property: string | number, propertyKey: string | number): string | undefined;
}

// Warning: (ae-missing-release-tag) "ColorSwitchCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ColorSwitchCCGet extends ColorSwitchCC {
    constructor(options: WithAddress_2<ColorSwitchCCGetOptions>);
    // (undocumented)
    get colorComponent(): ColorComponent;
    set colorComponent(value: ColorComponent);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ColorSwitchCCGet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "ColorSwitchCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ColorSwitchCCGetOptions {
    // (undocumented)
    colorComponent: ColorComponent;
}

// Warning: (ae-missing-release-tag) "ColorSwitchCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ColorSwitchCCReport extends ColorSwitchCC {
    constructor(options: WithAddress_2<ColorSwitchCCReportOptions>);
    // (undocumented)
    readonly colorComponent: ColorComponent;
    // (undocumented)
    readonly currentValue: number;
    // (undocumented)
    readonly duration: Duration_2 | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ColorSwitchCCReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly targetValue: number | undefined;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "ColorSwitchCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ColorSwitchCCReportOptions {
    // (undocumented)
    colorComponent: ColorComponent;
    // (undocumented)
    currentValue: number;
    // (undocumented)
    duration?: Duration_2 | string;
    // (undocumented)
    targetValue?: number;
}

// Warning: (ae-missing-release-tag) "ColorSwitchCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ColorSwitchCCSet extends ColorSwitchCC {
    constructor(options: WithAddress_2<ColorSwitchCCSetOptions>);
    // (undocumented)
    colorTable: ColorTable;
    // (undocumented)
    duration: Duration_2 | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ColorSwitchCCSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "ColorSwitchCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ColorSwitchCCSetOptions = (ColorTable | {
    hexColor: string;
}) & {
    duration?: Duration_2 | string;
};

// Warning: (ae-missing-release-tag) "ColorSwitchCCStartLevelChange" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ColorSwitchCCStartLevelChange extends ColorSwitchCC {
    constructor(options: WithAddress_2<ColorSwitchCCStartLevelChangeOptions>);
    // (undocumented)
    colorComponent: ColorComponent;
    // (undocumented)
    direction: keyof typeof LevelChangeDirection;
    // (undocumented)
    duration: Duration_2 | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ColorSwitchCCStartLevelChange;
    // (undocumented)
    ignoreStartLevel: boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    startLevel: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "ColorSwitchCCStartLevelChangeOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ColorSwitchCCStartLevelChangeOptions = {
    colorComponent: ColorComponent;
    direction: keyof typeof LevelChangeDirection;
} & ({
    ignoreStartLevel: true;
    startLevel?: number;
} | {
    ignoreStartLevel: false;
    startLevel: number;
}) & {
    duration?: Duration_2 | string;
};

// Warning: (ae-missing-release-tag) "ColorSwitchCCStopLevelChange" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ColorSwitchCCStopLevelChange extends ColorSwitchCC {
    constructor(options: WithAddress_2<ColorSwitchCCStopLevelChangeOptions>);
    // (undocumented)
    readonly colorComponent: ColorComponent;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ColorSwitchCCStopLevelChange;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "ColorSwitchCCStopLevelChangeOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ColorSwitchCCStopLevelChangeOptions {
    // (undocumented)
    colorComponent: ColorComponent;
}

// Warning: (ae-missing-release-tag) "ColorSwitchCCSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ColorSwitchCCSupportedGet extends ColorSwitchCC {
}

// Warning: (ae-missing-release-tag) "ColorSwitchCCSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ColorSwitchCCSupportedReport extends ColorSwitchCC {
    constructor(options: WithAddress_2<ColorSwitchCCSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ColorSwitchCCSupportedReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly supportedColorComponents: readonly ColorComponent[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "ColorSwitchCCSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ColorSwitchCCSupportedReportOptions {
    // (undocumented)
    supportedColorComponents: readonly ColorComponent[];
}

// Warning: (ae-missing-release-tag) "ColorSwitchCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const ColorSwitchCCValues: Readonly<{
    targetColorChannel: ((component: ColorComponent) => {
        readonly meta: {
            readonly label: `Target value (${string})`;
            readonly description: `The target value of the ${string} channel.`;
            readonly valueChangeOptions: readonly ["transitionDuration"];
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Color Switch"];
            property: "targetColor";
            propertyKey: ColorComponent;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Color Switch"];
            readonly endpoint: number;
            readonly property: "targetColor";
            readonly propertyKey: ColorComponent;
        };
    }) & {
        is: (valueId: ValueID) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    currentColorChannel: ((component: ColorComponent) => {
        readonly meta: {
            readonly label: `Current value (${string})`;
            readonly description: `The current value of the ${string} channel.`;
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Color Switch"];
            property: "currentColor";
            propertyKey: ColorComponent;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Color Switch"];
            readonly endpoint: number;
            readonly property: "currentColor";
            readonly propertyKey: ColorComponent;
        };
    }) & {
        is: (valueId: ValueID) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    hexColor: {
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Color Switch"];
            property: "hexColor";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Color Switch"];
            readonly endpoint: number;
            readonly property: "hexColor";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly minLength: 6;
            readonly maxLength: 7;
            readonly label: "RGB Color";
            readonly valueChangeOptions: readonly ["transitionDuration"];
            readonly type: "color";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    duration: {
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Color Switch"];
            property: "duration";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Color Switch"];
            readonly endpoint: number;
            readonly property: "duration";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly label: "Remaining duration";
            readonly writeable: false;
            readonly type: "duration";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    targetColor: {
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Color Switch"];
            property: "targetColor";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Color Switch"];
            readonly endpoint: number;
            readonly property: "targetColor";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly label: "Target color";
            readonly valueChangeOptions: readonly ["transitionDuration"];
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    currentColor: {
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Color Switch"];
            property: "currentColor";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Color Switch"];
            readonly endpoint: number;
            readonly property: "currentColor";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly label: "Current color";
            readonly writeable: false;
            readonly type: "any";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    supportsHexColor: {
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Color Switch"];
            property: "supportsHexColor";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Color Switch"];
            readonly endpoint: number;
            readonly property: "supportsHexColor";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportedColorComponents: {
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Color Switch"];
            property: "supportedColorComponents";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Color Switch"];
            readonly endpoint: number;
            readonly property: "supportedColorComponents";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "ColorSwitchCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ColorSwitchCommand {
    // (undocumented)
    Get = 3,
    // (undocumented)
    Report = 4,
    // (undocumented)
    Set = 5,
    // (undocumented)
    StartLevelChange = 6,
    // (undocumented)
    StopLevelChange = 7,
    // (undocumented)
    SupportedGet = 1,
    // (undocumented)
    SupportedReport = 2
}

// Warning: (ae-missing-release-tag) "ColorTable" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type ColorTable = Partial<Record<ColorKey, number>> | Partial<Record<ColorComponent, number>>;

// Warning: (ae-missing-release-tag) "CommandClass" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class CommandClass implements CCId {
    constructor(options: CommandClassOptions);
    // (undocumented)
    ccCommand?: number;
    ccId: CommandClasses_2;
    // (undocumented)
    get ccName(): string;
    protected computeEncapsulationOverhead(): number;
    static createInstanceUnchecked<T extends CommandClass>(endpoint: EndpointId, cc: CommandClasses_2 | CCConstructor<T>): T | undefined;
    determineRequiredCCInterviews(): readonly CommandClasses_2[];
    encapsulatingCC?: EncapsulatingCommandClass;
    encapsulationFlags: EncapsulationFlags;
    endpointIndex: number;
    // 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 "CCValue" needs to be exported by the entry point index.d.ts
    protected ensureMetadata(ctx: GetValueDB, ccValue: CCValue, meta?: ValueMetadata): void;
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    expectMoreMessages(_session: CommandClass[]): boolean;
    expectsCCResponse(): boolean;
    readonly frameType?: FrameType;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): CommandClass;
    protected getCCValue(valueId: ValueID): StaticCCValue | DynamicCCValue | undefined;
    getDefinedValueIDs(ctx: GetValueDB & GetSupportedCCVersion & GetDeviceConfig & GetNode<NodeId_2 & GetEndpoint_2<EndpointId & SupportsCC_2 & ControlsCC_2>>, includeInternal?: boolean): ValueID[];
    getEncapsulatedCC(ccId: CommandClasses_2, ccCommand?: number): CommandClass | undefined;
    getEncapsulatingCC(ccId: CommandClasses_2, ccCommand?: number): CommandClass | undefined;
    // (undocumented)
    getEndpoint<T extends EndpointId>(ctx: GetNode<NodeId_2 & GetEndpoint_2<T>>): T | undefined;
    getMaxPayloadLength(baseLength: number): number;
    protected getMetadata<T extends ValueMetadata>(ctx: GetValueDB, ccValue: CCValue): T | undefined;
    getNode<T extends NodeId_2>(ctx: GetNode<T>): T | undefined;
    getPartialCCSessionId(): Record<string, any> | undefined;
    protected getValue<T>(ctx: GetValueDB, ccValue: CCValue): T | undefined;
    protected getValueDB(ctx: GetValueDB): ValueDB;
    protected getValueTimestamp(ctx: GetValueDB, ccValue: CCValue): number | undefined;
    interview(_ctx: InterviewContext): Promise<void>;
    // (undocumented)
    isBroadcast(): this is BroadcastCC<this>;
    isEncapsulatedWith(ccId: CommandClasses_2, ccCommand?: number): boolean;
    // (undocumented)
    isExpectedCCResponse(received: CommandClass): boolean;
    isExtended(): boolean;
    isInternalValue(properties: ValueIDProperties): boolean;
    isInterviewComplete(host: GetValueDB): boolean;
    // (undocumented)
    isMulticast(): this is MulticastCC<this>;
    isSecretValue(properties: ValueIDProperties): boolean;
    // (undocumented)
    isSinglecast(): this is SinglecastCC<this>;
    isStatefulValue(properties: ValueIDProperties): boolean;
    mergePartialCCs(_partials: CommandClass[], _ctx: CCParsingContext): void;
    nodeId: number | MulticastDestination;
    // (undocumented)
    static parse(data: Uint8Array, ctx: CCParsingContext): CommandClass;
    // (undocumented)
    payload: Bytes_2;
    // Warning: (tsdoc-characters-after-block-tag) The token "@ccValue" looks like a TSDoc tag but contains an invalid character "."; if it is not a tag, use a backslash to escape the "@"
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    prepareRetransmission(): void;
    refreshValues(_ctx: RefreshValuesContext): Promise<void>;
    protected removeMetadata(ctx: GetValueDB, ccValue: CCValue): void;
    protected removeValue(ctx: GetValueDB, ccValue: CCValue): void;
    serialize(ctx: CCEncodingContext): Bytes_2;
    setInterviewComplete(host: GetValueDB, complete: boolean): void;
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    setMappedBasicValue(_ctx: GetValueDB, _value: number): boolean;
    // Warning: (tsdoc-param-tag-missing-hyphen) The @param block should be followed by a parameter name and then a hyphen
    protected setMetadata(ctx: GetValueDB, ccValue: CCValue, meta?: ValueMetadata): void;
    protected setValue(ctx: GetValueDB, ccValue: CCValue, value: unknown): void;
    shouldRefreshValues(this: SinglecastCC<this>, _ctx: GetValueDB & GetSupportedCCVersion & GetDeviceConfig & GetNode<NodeId_2 & GetEndpoint_2<EndpointId & SupportsCC_2 & ControlsCC_2>>): boolean;
    skipEndpointInterview(): boolean;
    // (undocumented)
    protected throwMissingCriticalInterviewResponse(): never;
    toggleEncapsulationFlag(flag: EncapsulationFlags, active: boolean): void;
    toJSON(): JSONObject;
    toLogEntry(_ctx?: GetValueDB): MessageOrCCLogEntry;
    // 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
    translateProperty(_ctx: GetValueDB, property: string | number, _propertyKey?: string | number): string;
    // 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
    translatePropertyKey(_ctx: GetValueDB, _property: string | number, propertyKey: string | number): string | undefined;
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "commandClass" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const commandClass: <TTarget extends typeof CommandClass>(ccId: CommandClasses_2) => TypedClassDecorator_2<TTarget>;

// Warning: (ae-missing-release-tag) "CommandClassOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface CommandClassOptions extends CCAddress {
    // (undocumented)
    ccCommand?: number;
    // (undocumented)
    ccId?: number;
    // (undocumented)
    payload?: Uint8Array;
}

// Warning: (ae-missing-release-tag) "ConfigurationCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ConfigurationCC extends CommandClass {
    // (undocumented)
    ccCommand: ConfigurationCommand;
    composePartialParamValue(ctx: GetValueDB_2, parameter: number, bitMask: number, partialValue: number): number;
    composePartialParamValues(ctx: GetValueDB_2, parameter: number, partials: {
        bitMask: number;
        partialValue: number;
    }[]): number;
    deserializeParamInformationFromConfig(ctx: GetValueDB_2 & GetDeviceConfig_2, config: ParamInfoMap): void;
    getPartialParamInfos(ctx: GetValueDB_2, parameter: number): (ValueID_2 & {
        metadata: ConfigurationMetadata;
    })[];
    getQueriedParamInfos(ctx: GetValueDB_2 & GetSupportedCCVersion_2 & GetDeviceConfig_2 & GetNode_2<NodeId & GetEndpoint<EndpointId_2 & SupportsCC & ControlsCC>>): Record<number, ConfigurationMetadata>;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    protected paramExistsInConfigFile(ctx: GetValueDB_2 & GetDeviceConfig_2, parameter: number, valueBitMask?: number): boolean;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
    // (undocumented)
    translateProperty(ctx: GetValueDB_2, property: string | number, propertyKey?: string | number): string;
    // (undocumented)
    translatePropertyKey(ctx: GetValueDB_2, property: string | number, propertyKey?: string | number): string | undefined;
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "ConfigurationCCAPISetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ConfigurationCCAPISetOptions = {
    parameter: number;
} & ({
    bitMask?: undefined;
    value: ConfigValue;
} | {
    bitMask?: undefined;
    value: ConfigValue;
    valueSize: 1 | 2 | 4;
    valueFormat: ConfigValueFormat;
} | {
    bitMask: number;
    value: number;
});

// Warning: (ae-missing-release-tag) "ConfigurationCCBulkGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ConfigurationCCBulkGet extends ConfigurationCC {
    constructor(options: WithAddress<ConfigurationCCBulkGetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): ConfigurationCCBulkGet;
    // (undocumented)
    get parameters(): number[];
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ConfigurationCCBulkGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ConfigurationCCBulkGetOptions {
    // (undocumented)
    parameters: number[];
}

// Warning: (ae-missing-release-tag) "ConfigurationCCBulkReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ConfigurationCCBulkReport extends ConfigurationCC {
    constructor(options: WithAddress<ConfigurationCCBulkReportOptions>);
    // (undocumented)
    defaultValues: boolean;
    // (undocumented)
    expectMoreMessages(): boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ConfigurationCCBulkReport;
    // (undocumented)
    getPartialCCSessionId(): Record<string, any> | undefined;
    // (undocumented)
    isHandshakeResponse: boolean;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    reportsToFollow: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    get values(): ReadonlyMap<number, ConfigValue>;
    // (undocumented)
    valueSize: number;
}

// Warning: (ae-missing-release-tag) "ConfigurationCCBulkReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ConfigurationCCBulkReportOptions {
    // (undocumented)
    defaultValues: boolean;
    // (undocumented)
    isHandshakeResponse: boolean;
    // (undocumented)
    reportsToFollow: number;
    // (undocumented)
    values: Record<number, ConfigValue>;
    // (undocumented)
    valueSize: number;
}

// Warning: (ae-missing-release-tag) "ConfigurationCCBulkSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ConfigurationCCBulkSet extends ConfigurationCC {
    constructor(options: WithAddress<ConfigurationCCBulkSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): ConfigurationCCBulkSet;
    // (undocumented)
    get handshake(): boolean;
    // (undocumented)
    get parameters(): number[];
    // (undocumented)
    get resetToDefault(): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    get valueFormat(): ConfigValueFormat;
    // (undocumented)
    get values(): number[];
    // (undocumented)
    get valueSize(): number;
}

// Warning: (ae-missing-release-tag) "ConfigurationCCBulkSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ConfigurationCCBulkSetOptions = {
    parameters: number[];
    handshake?: boolean;
} & ({
    resetToDefault: true;
} | {
    resetToDefault?: false;
    valueSize: number;
    valueFormat?: ConfigValueFormat;
    values: number[];
});

// Warning: (ae-missing-release-tag) "ConfigurationCCDefaultReset" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ConfigurationCCDefaultReset extends ConfigurationCC {
}

// Warning: (ae-missing-release-tag) "ConfigurationCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ConfigurationCCGet extends ConfigurationCC {
    constructor(options: WithAddress<ConfigurationCCGetOptions>);
    // (undocumented)
    allowUnexpectedResponse: boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ConfigurationCCGet;
    // (undocumented)
    parameter: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ConfigurationCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ConfigurationCCGetOptions {
    allowUnexpectedResponse?: boolean;
    // (undocumented)
    parameter: number;
}

// Warning: (ae-missing-release-tag) "ConfigurationCCInfoGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ConfigurationCCInfoGet extends ConfigurationCC {
    constructor(options: WithAddress<ConfigurationCCGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ConfigurationCCInfoGet;
    // (undocumented)
    parameter: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ConfigurationCCInfoReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ConfigurationCCInfoReport extends ConfigurationCC {
    constructor(options: WithAddress<ConfigurationCCInfoReportOptions>);
    // (undocumented)
    expectMoreMessages(): boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ConfigurationCCInfoReport;
    // (undocumented)
    getPartialCCSessionId(): Record<string, any> | undefined;
    // (undocumented)
    info: string;
    // (undocumented)
    mergePartialCCs(partials: ConfigurationCCInfoReport[], _ctx: CCParsingContext_2): void;
    // (undocumented)
    readonly parameter: number;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    readonly reportsToFollow: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "ConfigurationCCInfoReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ConfigurationCCInfoReportOptions {
    // (undocumented)
    info: string;
    // (undocumented)
    parameter: number;
    // (undocumented)
    reportsToFollow: number;
}

// Warning: (ae-missing-release-tag) "ConfigurationCCNameGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ConfigurationCCNameGet extends ConfigurationCC {
    constructor(options: WithAddress<ConfigurationCCGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ConfigurationCCNameGet;
    // (undocumented)
    parameter: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ConfigurationCCNameReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ConfigurationCCNameReport extends ConfigurationCC {
    constructor(options: WithAddress<ConfigurationCCNameReportOptions>);
    // (undocumented)
    expectMoreMessages(): boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ConfigurationCCNameReport;
    // (undocumented)
    getPartialCCSessionId(): Record<string, any> | undefined;
    // (undocumented)
    mergePartialCCs(partials: ConfigurationCCNameReport[], _ctx: CCParsingContext_2): void;
    // (undocumented)
    name: string;
    // (undocumented)
    readonly parameter: number;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    readonly reportsToFollow: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "ConfigurationCCNameReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ConfigurationCCNameReportOptions {
    // (undocumented)
    name: string;
    // (undocumented)
    parameter: number;
    // (undocumented)
    reportsToFollow: number;
}

// Warning: (ae-missing-release-tag) "ConfigurationCCPropertiesGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ConfigurationCCPropertiesGet extends ConfigurationCC {
    constructor(options: WithAddress<ConfigurationCCGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ConfigurationCCPropertiesGet;
    // (undocumented)
    parameter: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ConfigurationCCPropertiesReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ConfigurationCCPropertiesReport extends ConfigurationCC {
    constructor(options: WithAddress<ConfigurationCCPropertiesReportOptions>);
    // (undocumented)
    altersCapabilities: MaybeNotKnown<boolean>;
    // (undocumented)
    defaultValue: MaybeNotKnown<ConfigValue>;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ConfigurationCCPropertiesReport;
    // (undocumented)
    isAdvanced: MaybeNotKnown<boolean>;
    // (undocumented)
    isReadonly: MaybeNotKnown<boolean>;
    // (undocumented)
    maxValue: MaybeNotKnown<ConfigValue>;
    // (undocumented)
    minValue: MaybeNotKnown<ConfigValue>;
    // (undocumented)
    nextParameter: number;
    // (undocumented)
    noBulkSupport: MaybeNotKnown<boolean>;
    // (undocumented)
    parameter: number;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    valueFormat: ConfigValueFormat;
    // (undocumented)
    valueSize: number;
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "ConfigurationCCPropertiesReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ConfigurationCCPropertiesReportOptions {
    // (undocumented)
    altersCapabilities?: boolean;
    // (undocumented)
    defaultValue?: ConfigValue;
    // (undocumented)
    isAdvanced?: boolean;
    // (undocumented)
    isReadonly?: boolean;
    // (undocumented)
    maxValue?: ConfigValue;
    // (undocumented)
    minValue?: ConfigValue;
    // (undocumented)
    nextParameter: number;
    // (undocumented)
    noBulkSupport?: boolean;
    // (undocumented)
    parameter: number;
    // (undocumented)
    valueFormat: ConfigValueFormat;
    // (undocumented)
    valueSize: number;
}

// Warning: (ae-missing-release-tag) "ConfigurationCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ConfigurationCCReport extends ConfigurationCC {
    constructor(options: WithAddress<ConfigurationCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ConfigurationCCReport;
    // (undocumented)
    parameter: number;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    value: ConfigValue;
    // (undocumented)
    valueSize: number;
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "ConfigurationCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ConfigurationCCReportOptions {
    // (undocumented)
    parameter: number;
    // (undocumented)
    value: ConfigValue;
    // (undocumented)
    valueFormat?: ConfigValueFormat;
    // (undocumented)
    valueSize: number;
}

// Warning: (ae-missing-release-tag) "ConfigurationCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ConfigurationCCSet extends ConfigurationCC {
    constructor(options: WithAddress<ConfigurationCCSetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ConfigurationCCSet;
    // (undocumented)
    parameter: number;
    // (undocumented)
    resetToDefault: boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    value: ConfigValue | undefined;
    // (undocumented)
    valueFormat: ConfigValueFormat | undefined;
    // (undocumented)
    valueSize: number | undefined;
}

// Warning: (ae-missing-release-tag) "ConfigurationCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ConfigurationCCSetOptions = {
    parameter: number;
    resetToDefault: true;
} | {
    parameter: number;
    resetToDefault?: false;
    valueSize: number;
    valueFormat?: ConfigValueFormat;
    value: ConfigValue;
};

// Warning: (ae-missing-release-tag) "ConfigurationCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const ConfigurationCCValues: Readonly<{
    paramInformation: ((parameter: number, bitMask?: number | undefined) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Configuration;
            property: number;
            propertyKey: number | undefined;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Configuration;
            readonly endpoint: number;
            readonly property: number;
            readonly propertyKey: number | undefined;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    isParamInformationFromConfig: {
        readonly id: {
            commandClass: CommandClasses.Configuration;
            property: "isParamInformationFromConfig";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Configuration;
            readonly endpoint: number;
            readonly property: "isParamInformationFromConfig";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly internal: true;
            readonly supportsEndpoints: false;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "ConfigurationCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ConfigurationCommand {
    // (undocumented)
    BulkGet = 8,
    // (undocumented)
    BulkReport = 9,
    // (undocumented)
    BulkSet = 7,
    // (undocumented)
    DefaultReset = 1,
    // (undocumented)
    Get = 5,
    // (undocumented)
    InfoGet = 12,
    // (undocumented)
    InfoReport = 13,
    // (undocumented)
    NameGet = 10,
    // (undocumented)
    NameReport = 11,
    // (undocumented)
    PropertiesGet = 14,
    // (undocumented)
    PropertiesReport = 15,
    // (undocumented)
    Report = 6,
    // (undocumented)
    Set = 4
}

// Warning: (ae-missing-release-tag) "configureLifelineAssociations" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
function configureLifelineAssociations(ctx: CCAPIHost<CCAPINode & SupportsCC & ControlsCC & GetAllEndpoints<EndpointId_2 & SupportsCC & ControlsCC>>, endpoint: EndpointId_2 & SupportsCC & ControlsCC): Promise<void>;

export { ConfigValue }

// Warning: (ae-missing-release-tag) "CRC16CC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class CRC16CC extends CommandClass {
    // (undocumented)
    ccCommand: CRC16Command;
    static encapsulate(cc: CommandClass): CRC16CCCommandEncapsulation;
    static requiresEncapsulation(cc: CommandClass): boolean;
}

// Warning: (ae-missing-release-tag) "CRC16CCCommandEncapsulation" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class CRC16CCCommandEncapsulation extends CRC16CC {
    constructor(options: WithAddress<CRC16CCCommandEncapsulationOptions>);
    // (undocumented)
    protected computeEncapsulationOverhead(): number;
    // (undocumented)
    encapsulated: CommandClass;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): CRC16CCCommandEncapsulation;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "CRC16CCCommandEncapsulationOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface CRC16CCCommandEncapsulationOptions {
    // (undocumented)
    encapsulated: CommandClass;
}

// Warning: (ae-missing-release-tag) "CRC16Command" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum CRC16Command {
    // (undocumented)
    CommandEncapsulation = 1
}

// Warning: (ae-missing-release-tag) "dataRate2ZWaveDataRate" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function dataRate2ZWaveDataRate(dataRate: DataRate_2): ZWaveDataRate_2;

// Warning: (ae-missing-release-tag) "DecryptionResult" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface DecryptionResult {
    // (undocumented)
    authOK: boolean;
    // (undocumented)
    iv?: Uint8Array;
    // (undocumented)
    key?: Uint8Array;
    // (undocumented)
    plaintext: Uint8Array;
    // (undocumented)
    securityClass: SecurityClass | undefined;
}

// Warning: (ae-missing-release-tag) "defaultCCValueOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const defaultCCValueOptions: {
    readonly internal: false;
    readonly minVersion: 1;
    readonly secret: false;
    readonly stateful: true;
    readonly supportsEndpoints: true;
    readonly autoCreate: true;
};

// Warning: (ae-missing-release-tag) "DeviceIdType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum DeviceIdType {
    // (undocumented)
    FactoryDefault = 0,
    // (undocumented)
    PseudoRandom = 2,
    // (undocumented)
    SerialNumber = 1
}

// Warning: (ae-missing-release-tag) "DeviceResetLocallyCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DeviceResetLocallyCC extends CommandClass {
    // (undocumented)
    ccCommand: DeviceResetLocallyCommand;
    // (undocumented)
    nodeId: number;
}

// Warning: (ae-missing-release-tag) "DeviceResetLocallyCCNotification" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DeviceResetLocallyCCNotification extends DeviceResetLocallyCC {
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): DeviceResetLocallyCCNotification;
}

// Warning: (ae-missing-release-tag) "DeviceResetLocallyCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum DeviceResetLocallyCommand {
    // (undocumented)
    Notification = 1
}

// Warning: (ae-missing-release-tag) "doesAnyLifelineSendActuatorOrSensorReports" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
function doesAnyLifelineSendActuatorOrSensorReports(ctx: GetValueDB & GetDeviceConfig, node: NodeId & SupportsCC): MaybeNotKnown<boolean>;

// Warning: (ae-missing-release-tag) "DoorHandleStatus" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type DoorHandleStatus = [boolean, boolean, boolean, boolean];

// Warning: (ae-missing-release-tag) "DoorLockCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DoorLockCC extends CommandClass {
    // (undocumented)
    ccCommand: DoorLockCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "DoorLockCCCapabilitiesGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DoorLockCCCapabilitiesGet extends DoorLockCC {
}

// Warning: (ae-missing-release-tag) "DoorLockCCCapabilitiesReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DoorLockCCCapabilitiesReport extends DoorLockCC {
    constructor(options: WithAddress<DoorLockCCCapabilitiesReportOptions>);
    // (undocumented)
    readonly autoRelockSupported: boolean;
    // (undocumented)
    readonly blockToBlockSupported: boolean;
    // (undocumented)
    readonly boltSupported: boolean;
    // (undocumented)
    readonly doorSupported: boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): DoorLockCCCapabilitiesReport;
    // (undocumented)
    readonly holdAndReleaseSupported: boolean;
    // (undocumented)
    readonly latchSupported: boolean;
    // (undocumented)
    readonly supportedDoorLockModes: readonly DoorLockMode[];
    // (undocumented)
    readonly supportedInsideHandles: DoorHandleStatus;
    // (undocumented)
    readonly supportedOperationTypes: readonly DoorLockOperationType[];
    // (undocumented)
    readonly supportedOutsideHandles: DoorHandleStatus;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    readonly twistAssistSupported: boolean;
}

// Warning: (ae-missing-release-tag) "DoorLockCCCapabilitiesReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface DoorLockCCCapabilitiesReportOptions {
    // (undocumented)
    autoRelockSupported: boolean;
    // (undocumented)
    blockToBlockSupported: boolean;
    // (undocumented)
    boltSupported: boolean;
    // (undocumented)
    doorSupported: boolean;
    // (undocumented)
    holdAndReleaseSupported: boolean;
    // (undocumented)
    latchSupported: boolean;
    // (undocumented)
    supportedDoorLockModes: DoorLockMode[];
    // (undocumented)
    supportedInsideHandles: DoorHandleStatus;
    // (undocumented)
    supportedOperationTypes: DoorLockOperationType[];
    // (undocumented)
    supportedOutsideHandles: DoorHandleStatus;
    // (undocumented)
    twistAssistSupported: boolean;
}

// Warning: (ae-missing-release-tag) "DoorLockCCConfigurationGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DoorLockCCConfigurationGet extends DoorLockCC {
}

// Warning: (ae-missing-release-tag) "DoorLockCCConfigurationReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DoorLockCCConfigurationReport extends DoorLockCC {
    constructor(options: WithAddress<DoorLockCCConfigurationReportOptions>);
    // (undocumented)
    readonly autoRelockTime?: number;
    // (undocumented)
    readonly blockToBlock?: boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): DoorLockCCConfigurationReport;
    // (undocumented)
    readonly holdAndReleaseTime?: number;
    // (undocumented)
    readonly insideHandlesCanOpenDoorConfiguration: DoorHandleStatus;
    // (undocumented)
    readonly lockTimeoutConfiguration?: number;
    // (undocumented)
    readonly operationType: DoorLockOperationType;
    // (undocumented)
    readonly outsideHandlesCanOpenDoorConfiguration: DoorHandleStatus;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    readonly twistAssist?: boolean;
}

// Warning: (ae-missing-release-tag) "DoorLockCCConfigurationReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface DoorLockCCConfigurationReportOptions {
    // (undocumented)
    autoRelockTime?: number;
    // (undocumented)
    blockToBlock?: boolean;
    // (undocumented)
    holdAndReleaseTime?: number;
    // (undocumented)
    insideHandlesCanOpenDoorConfiguration: DoorHandleStatus;
    // (undocumented)
    lockTimeoutConfiguration?: number;
    // (undocumented)
    operationType: DoorLockOperationType;
    // (undocumented)
    outsideHandlesCanOpenDoorConfiguration: DoorHandleStatus;
    // (undocumented)
    twistAssist?: boolean;
}

// Warning: (ae-missing-release-tag) "DoorLockCCConfigurationSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DoorLockCCConfigurationSet extends DoorLockCC {
    constructor(options: WithAddress<DoorLockCCConfigurationSetOptions>);
    // (undocumented)
    autoRelockTime?: number;
    // (undocumented)
    blockToBlock?: boolean;
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): DoorLockCCConfigurationSet;
    // (undocumented)
    holdAndReleaseTime?: number;
    // (undocumented)
    insideHandlesCanOpenDoorConfiguration: DoorHandleStatus;
    // (undocumented)
    lockTimeoutConfiguration?: number;
    // (undocumented)
    operationType: DoorLockOperationType;
    // (undocumented)
    outsideHandlesCanOpenDoorConfiguration: DoorHandleStatus;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    twistAssist?: boolean;
}

// Warning: (ae-missing-release-tag) "DoorLockCCConfigurationSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type DoorLockCCConfigurationSetOptions = ({
    operationType: DoorLockOperationType.Timed;
    lockTimeoutConfiguration: number;
} | {
    operationType: DoorLockOperationType.Constant;
    lockTimeoutConfiguration?: undefined;
}) & {
    outsideHandlesCanOpenDoorConfiguration: DoorHandleStatus;
    insideHandlesCanOpenDoorConfiguration: DoorHandleStatus;
    autoRelockTime?: number;
    holdAndReleaseTime?: number;
    twistAssist?: boolean;
    blockToBlock?: boolean;
};

// Warning: (ae-missing-release-tag) "DoorLockCCOperationGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DoorLockCCOperationGet extends DoorLockCC {
}

// Warning: (ae-missing-release-tag) "DoorLockCCOperationReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DoorLockCCOperationReport extends DoorLockCC {
    constructor(options: WithAddress<DoorLockCCOperationReportOptions>);
    // (undocumented)
    readonly boltStatus?: "locked" | "unlocked";
    // (undocumented)
    readonly currentMode: DoorLockMode;
    // (undocumented)
    readonly doorStatus?: "open" | "closed";
    // (undocumented)
    readonly duration?: Duration;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): DoorLockCCOperationReport;
    // (undocumented)
    readonly insideHandlesCanOpenDoor: DoorHandleStatus;
    // (undocumented)
    readonly latchStatus?: "open" | "closed";
    // (undocumented)
    readonly lockTimeout?: number;
    // (undocumented)
    readonly outsideHandlesCanOpenDoor: DoorHandleStatus;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    readonly targetMode?: DoorLockMode;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "DoorLockCCOperationReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface DoorLockCCOperationReportOptions {
    // (undocumented)
    boltStatus?: "unlocked" | "locked";
    // (undocumented)
    currentMode: DoorLockMode;
    // (undocumented)
    doorStatus?: "closed" | "open";
    // (undocumented)
    duration?: Duration;
    // (undocumented)
    insideHandlesCanOpenDoor: DoorHandleStatus;
    // (undocumented)
    latchStatus?: "closed" | "open";
    // (undocumented)
    lockTimeout?: number;
    // (undocumented)
    outsideHandlesCanOpenDoor: DoorHandleStatus;
    // (undocumented)
    targetMode?: DoorLockMode;
}

// Warning: (ae-missing-release-tag) "DoorLockCCOperationSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DoorLockCCOperationSet extends DoorLockCC {
    constructor(options: WithAddress<DoorLockCCOperationSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): DoorLockCCOperationSet;
    // (undocumented)
    mode: DoorLockMode;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "DoorLockCCOperationSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface DoorLockCCOperationSetOptions {
    // (undocumented)
    mode: DoorLockMode;
}

// Warning: (ae-missing-release-tag) "DoorLockCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const DoorLockCCValues: Readonly<{
    doorStatus: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "doorStatus";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "doorStatus";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Current status of the door";
            readonly writeable: false;
            readonly type: "any";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: (ctx: GetValueDB_2, endpoint: EndpointId_2) => boolean;
        };
    };
    doorSupported: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "doorSupported";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "doorSupported";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    boltStatus: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "boltStatus";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "boltStatus";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Current status of the bolt";
            readonly writeable: false;
            readonly type: "any";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: (ctx: GetValueDB_2, endpoint: EndpointId_2) => boolean;
        };
    };
    boltSupported: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "boltSupported";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "boltSupported";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    latchStatus: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "latchStatus";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "latchStatus";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Current status of the latch";
            readonly writeable: false;
            readonly type: "any";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: (ctx: GetValueDB_2, endpoint: EndpointId_2) => boolean;
        };
    };
    latchSupported: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "latchSupported";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "latchSupported";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    blockToBlock: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "blockToBlock";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "blockToBlock";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Block-to-block functionality enabled";
            readonly type: "boolean";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly minVersion: 4;
            readonly autoCreate: (ctx: GetValueDB_2, endpoint: EndpointId_2) => boolean;
        };
    };
    blockToBlockSupported: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "blockToBlockSupported";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "blockToBlockSupported";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
            readonly minVersion: number;
        };
    };
    twistAssist: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "twistAssist";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "twistAssist";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Twist Assist enabled";
            readonly type: "boolean";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly minVersion: 4;
            readonly autoCreate: (ctx: GetValueDB_2, endpoint: EndpointId_2) => boolean;
        };
    };
    twistAssistSupported: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "twistAssistSupported";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "twistAssistSupported";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
            readonly minVersion: number;
        };
    };
    holdAndReleaseTime: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "holdAndReleaseTime";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "holdAndReleaseTime";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Duration in seconds the latch stays retracted";
            readonly min: 0;
            readonly max: 65535;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly minVersion: 4;
            readonly autoCreate: (ctx: GetValueDB_2, endpoint: EndpointId_2) => boolean;
        };
    };
    holdAndReleaseSupported: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "holdAndReleaseSupported";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "holdAndReleaseSupported";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
            readonly minVersion: number;
        };
    };
    autoRelockTime: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "autoRelockTime";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "autoRelockTime";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Duration in seconds until lock returns to secure state";
            readonly min: 0;
            readonly max: 65535;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly minVersion: 4;
            readonly autoCreate: (ctx: GetValueDB_2, endpoint: EndpointId_2) => boolean;
        };
    };
    autoRelockSupported: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "autoRelockSupported";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "autoRelockSupported";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
            readonly minVersion: number;
        };
    };
    lockTimeout: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "lockTimeout";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "lockTimeout";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Seconds until lock mode times out";
            readonly writeable: false;
            readonly min: 0;
            readonly max: 65535;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    lockTimeoutConfiguration: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "lockTimeoutConfiguration";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "lockTimeoutConfiguration";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Duration of timed mode in seconds";
            readonly min: 0;
            readonly max: 65535;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    operationType: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "operationType";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "operationType";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Lock operation type";
            readonly states: {
                [x: number]: string;
            };
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    insideHandlesCanOpenDoor: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "insideHandlesCanOpenDoor";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "insideHandlesCanOpenDoor";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Which inside handles can open the door (actual status)";
            readonly writeable: false;
            readonly type: "any";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    insideHandlesCanOpenDoorConfiguration: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "insideHandlesCanOpenDoorConfiguration";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "insideHandlesCanOpenDoorConfiguration";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Which inside handles can open the door (configuration)";
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    supportedInsideHandles: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "supportedInsideHandles";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "supportedInsideHandles";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
            readonly minVersion: number;
        };
    };
    outsideHandlesCanOpenDoor: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "outsideHandlesCanOpenDoor";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "outsideHandlesCanOpenDoor";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Which outside handles can open the door (actual status)";
            readonly writeable: false;
            readonly type: "any";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    outsideHandlesCanOpenDoorConfiguration: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "outsideHandlesCanOpenDoorConfiguration";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "outsideHandlesCanOpenDoorConfiguration";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Which outside handles can open the door (configuration)";
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    supportedOutsideHandles: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "supportedOutsideHandles";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "supportedOutsideHandles";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
            readonly minVersion: number;
        };
    };
    duration: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "duration";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "duration";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Remaining duration until target lock mode";
            readonly writeable: false;
            readonly type: "duration";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 3;
        };
    };
    currentMode: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "currentMode";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "currentMode";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Current lock mode";
            readonly states: {
                [x: number]: string;
            };
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    targetMode: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock"];
            property: "targetMode";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock"];
            readonly endpoint: number;
            readonly property: "targetMode";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Target lock mode";
            readonly states: {
                [x: number]: string;
            };
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "DoorLockCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum DoorLockCommand {
    // (undocumented)
    CapabilitiesGet = 7,
    // (undocumented)
    CapabilitiesReport = 8,
    // (undocumented)
    ConfigurationGet = 5,
    // (undocumented)
    ConfigurationReport = 6,
    // (undocumented)
    ConfigurationSet = 4,
    // (undocumented)
    OperationGet = 2,
    // (undocumented)
    OperationReport = 3,
    // (undocumented)
    OperationSet = 1
}

// Warning: (ae-missing-release-tag) "DoorLockLoggingCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DoorLockLoggingCC extends CommandClass {
    // (undocumented)
    ccCommand: DoorLockLoggingCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "DoorLockLoggingCCRecordGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DoorLockLoggingCCRecordGet extends DoorLockLoggingCC {
    constructor(options: WithAddress<DoorLockLoggingCCRecordGetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): DoorLockLoggingCCRecordGet;
    // (undocumented)
    recordNumber: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "DoorLockLoggingCCRecordGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface DoorLockLoggingCCRecordGetOptions {
    // (undocumented)
    recordNumber: number;
}

// Warning: (ae-missing-release-tag) "DoorLockLoggingCCRecordReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DoorLockLoggingCCRecordReport extends DoorLockLoggingCC {
    constructor(options: WithAddress<DoorLockLoggingCCRecordReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): DoorLockLoggingCCRecordReport;
    // (undocumented)
    readonly record?: DoorLockLoggingRecord;
    // (undocumented)
    readonly recordNumber: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "DoorLockLoggingCCRecordReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface DoorLockLoggingCCRecordReportOptions {
    // (undocumented)
    record?: DoorLockLoggingRecord;
    // (undocumented)
    recordNumber: number;
}

// Warning: (ae-missing-release-tag) "DoorLockLoggingCCRecordsSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DoorLockLoggingCCRecordsSupportedGet extends DoorLockLoggingCC {
}

// Warning: (ae-missing-release-tag) "DoorLockLoggingCCRecordsSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class DoorLockLoggingCCRecordsSupportedReport extends DoorLockLoggingCC {
    constructor(options: WithAddress<DoorLockLoggingCCRecordsSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): DoorLockLoggingCCRecordsSupportedReport;
    // (undocumented)
    readonly recordsCount: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "DoorLockLoggingCCRecordsSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface DoorLockLoggingCCRecordsSupportedReportOptions {
    // (undocumented)
    recordsCount: number;
}

// Warning: (ae-missing-release-tag) "DoorLockLoggingCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const DoorLockLoggingCCValues: Readonly<{
    recordsCount: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Door Lock Logging"];
            property: "recordsCount";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Door Lock Logging"];
            readonly endpoint: number;
            readonly property: "recordsCount";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "DoorLockLoggingCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum DoorLockLoggingCommand {
    // (undocumented)
    RecordGet = 3,
    // (undocumented)
    RecordReport = 4,
    // (undocumented)
    RecordsSupportedGet = 1,
    // (undocumented)
    RecordsSupportedReport = 2
}

// Warning: (ae-missing-release-tag) "DoorLockLoggingEventType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum DoorLockLoggingEventType {
    // (undocumented)
    AdminCodeChanged = 26,
    // (undocumented)
    AllUserCodesDeleted = 25,
    // (undocumented)
    ConfigurationChanged = 29,
    // (undocumented)
    IllegalCode = 7,
    // (undocumented)
    LockAuto = 10,
    // (undocumented)
    LockButton = 3,
    // (undocumented)
    LockCode = 1,
    // (undocumented)
    LockCodeOutOfSchedule = 5,
    // (undocumented)
    LockManual = 8,
    // (undocumented)
    LockManual2 = 19,
    // (undocumented)
    LockRemote = 14,
    // (undocumented)
    LockRemoteCode = 12,
    // (undocumented)
    LockRemoteCodeOutOfSchedule = 16,
    // (undocumented)
    LockReset = 28,
    // (undocumented)
    LockSecured = 21,
    // (undocumented)
    LockUnsecured = 22,
    // (undocumented)
    LowBattery = 30,
    // (undocumented)
    NewBattery = 31,
    // (undocumented)
    RemoteIllegalCode = 18,
    // (undocumented)
    Unknown = 32,
    // (undocumented)
    UnlockAuto = 11,
    // (undocumented)
    UnlockButton = 4,
    // (undocumented)
    UnlockCode = 2,
    // (undocumented)
    UnlockCodeOutOfSchedule = 6,
    // (undocumented)
    UnlockManual = 9,
    // (undocumented)
    UnlockManual2 = 20,
    // (undocumented)
    UnlockRemote = 15,
    // (undocumented)
    UnlockRemoteCode = 13,
    // (undocumented)
    UnlockRemoteCodeOutOfSchedule = 17,
    // (undocumented)
    UserCodeAdded = 23,
    // (undocumented)
    UserCodeChanged = 27,
    // (undocumented)
    UserCodeDeleted = 24
}

// Warning: (ae-missing-release-tag) "DoorLockLoggingRecord" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface DoorLockLoggingRecord {
    // (undocumented)
    eventType: DoorLockLoggingEventType;
    // (undocumented)
    label: string;
    // (undocumented)
    timestamp: string;
    // (undocumented)
    userCode?: string | Uint8Array;
    // (undocumented)
    userId?: number;
}

// Warning: (ae-missing-release-tag) "DoorLockLoggingRecordStatus" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum DoorLockLoggingRecordStatus {
    // (undocumented)
    Empty = 0,
    // (undocumented)
    HoldsLegalData = 1
}

// Warning: (ae-missing-release-tag) "DoorLockMode" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum DoorLockMode {
    // (undocumented)
    InsideUnsecured = 16,
    // (undocumented)
    InsideUnsecuredWithTimeout = 17,
    // (undocumented)
    OutsideUnsecured = 32,
    // (undocumented)
    OutsideUnsecuredWithTimeout = 33,
    // (undocumented)
    Secured = 255,
    // (undocumented)
    Unknown = 254,
    // (undocumented)
    Unsecured = 0,
    // (undocumented)
    UnsecuredWithTimeout = 1
}

// Warning: (ae-missing-release-tag) "DoorLockOperationType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum DoorLockOperationType {
    // (undocumented)
    Constant = 1,
    // (undocumented)
    Timed = 2
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "DynamicCCResponse" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type DynamicCCResponse<TSent extends CommandClass, TReceived extends CommandClass = CommandClass> = (sentCC: TSent) => CCConstructor<TReceived> | CCConstructor<TReceived>[] | undefined;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "ECDHProfiles" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ECDHProfiles {
    // (undocumented)
    Curve25519 = 0
}

// Warning: (ae-missing-release-tag) "EncapsulatedCommandClass" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type EncapsulatedCommandClass = CommandClass & {
    encapsulatingCC: EncapsulatingCommandClass;
};

// Warning: (ae-missing-release-tag) "EncapsulatingCommandClass" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type EncapsulatingCommandClass = CommandClass & {
    encapsulated: EncapsulatedCommandClass;
};

// Warning: (ae-missing-release-tag) "EndpointAddress" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface EndpointAddress {
    // (undocumented)
    endpoint: number | number[];
    // (undocumented)
    nodeId: number;
}

// Warning: (ae-missing-release-tag) "EnergyProductionCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class EnergyProductionCC extends CommandClass {
    // (undocumented)
    ccCommand: EnergyProductionCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "EnergyProductionCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class EnergyProductionCCGet extends EnergyProductionCC {
    constructor(options: WithAddress_2<EnergyProductionCCGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): EnergyProductionCCGet;
    // (undocumented)
    parameter: EnergyProductionParameter;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "EnergyProductionCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface EnergyProductionCCGetOptions {
    // (undocumented)
    parameter: EnergyProductionParameter;
}

// Warning: (ae-missing-release-tag) "EnergyProductionCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class EnergyProductionCCReport extends EnergyProductionCC {
    constructor(options: WithAddress_2<EnergyProductionCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): EnergyProductionCCReport;
    // (undocumented)
    readonly parameter: EnergyProductionParameter;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    readonly scale: EnergyProductionScale;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
    // (undocumented)
    readonly value: number;
}

// Warning: (ae-missing-release-tag) "EnergyProductionCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface EnergyProductionCCReportOptions {
    // (undocumented)
    parameter: EnergyProductionParameter;
    // (undocumented)
    scale: EnergyProductionScale;
    // (undocumented)
    value: number;
}

// Warning: (ae-missing-release-tag) "EnergyProductionCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const EnergyProductionCCValues: Readonly<{
    value: ((parameter: EnergyProductionParameter) => {
        readonly meta: {
            readonly label: string;
            readonly writeable: false;
            readonly type: "number";
            readonly readable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Energy Production"];
            property: "value";
            propertyKey: EnergyProductionParameter;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Energy Production"];
            readonly endpoint: number;
            readonly property: "value";
            readonly propertyKey: EnergyProductionParameter;
        };
    }) & {
        is: (valueId: ValueID) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "EnergyProductionCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum EnergyProductionCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3
}

// Warning: (ae-missing-release-tag) "EnergyProductionParameter" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum EnergyProductionParameter {
    // (undocumented)
    "Production Today" = 2,
    // (undocumented)
    "Production Total" = 1,
    // (undocumented)
    "Total Time" = 3,
    // (undocumented)
    Power = 0
}

// Warning: (ae-missing-release-tag) "EnergyProductionScale" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface EnergyProductionScale {
    // (undocumented)
    key: number;
    // (undocumented)
    unit: string;
}

// Warning: (ae-missing-release-tag) "EntryControlCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class EntryControlCC extends CommandClass {
    // (undocumented)
    ccCommand: EntryControlCommand;
    // (undocumented)
    determineRequiredCCInterviews(): readonly CommandClasses[];
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "EntryControlCCConfigurationGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class EntryControlCCConfigurationGet extends EntryControlCC {
}

// Warning: (ae-missing-release-tag) "EntryControlCCConfigurationReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class EntryControlCCConfigurationReport extends EntryControlCC {
    constructor(options: WithAddress<EntryControlCCConfigurationReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): EntryControlCCConfigurationReport;
    // (undocumented)
    readonly keyCacheSize: number;
    // (undocumented)
    readonly keyCacheTimeout: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "EntryControlCCConfigurationReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface EntryControlCCConfigurationReportOptions {
    // (undocumented)
    keyCacheSize: number;
    // (undocumented)
    keyCacheTimeout: number;
}

// Warning: (ae-missing-release-tag) "EntryControlCCConfigurationSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class EntryControlCCConfigurationSet extends EntryControlCC {
    constructor(options: WithAddress<EntryControlCCConfigurationSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): EntryControlCCConfigurationSet;
    // (undocumented)
    readonly keyCacheSize: number;
    // (undocumented)
    readonly keyCacheTimeout: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "EntryControlCCConfigurationSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface EntryControlCCConfigurationSetOptions {
    // (undocumented)
    keyCacheSize: number;
    // (undocumented)
    keyCacheTimeout: number;
}

// Warning: (ae-missing-release-tag) "EntryControlCCEventSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class EntryControlCCEventSupportedGet extends EntryControlCC {
}

// Warning: (ae-missing-release-tag) "EntryControlCCEventSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class EntryControlCCEventSupportedReport extends EntryControlCC {
    constructor(options: WithAddress<EntryControlCCEventSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): EntryControlCCEventSupportedReport;
    // (undocumented)
    readonly maxKeyCacheSize: number;
    // (undocumented)
    readonly maxKeyCacheTimeout: number;
    // (undocumented)
    readonly minKeyCacheSize: number;
    // (undocumented)
    readonly minKeyCacheTimeout: number;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    readonly supportedDataTypes: readonly EntryControlDataTypes[];
    // (undocumented)
    readonly supportedEventTypes: readonly EntryControlEventTypes[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "EntryControlCCEventSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface EntryControlCCEventSupportedReportOptions {
    // (undocumented)
    maxKeyCacheSize: number;
    // (undocumented)
    maxKeyCacheTimeout: number;
    // (undocumented)
    minKeyCacheSize: number;
    // (undocumented)
    minKeyCacheTimeout: number;
    // (undocumented)
    supportedDataTypes: EntryControlDataTypes[];
    // (undocumented)
    supportedEventTypes: EntryControlEventTypes[];
}

// Warning: (ae-missing-release-tag) "EntryControlCCKeySupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class EntryControlCCKeySupportedGet extends EntryControlCC {
}

// Warning: (ae-missing-release-tag) "EntryControlCCKeySupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class EntryControlCCKeySupportedReport extends EntryControlCC {
    constructor(options: WithAddress<EntryControlCCKeySupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): EntryControlCCKeySupportedReport;
    // (undocumented)
    readonly supportedKeys: readonly number[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "EntryControlCCKeySupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface EntryControlCCKeySupportedReportOptions {
    // (undocumented)
    supportedKeys: number[];
}

// Warning: (ae-missing-release-tag) "EntryControlCCNotification" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class EntryControlCCNotification extends EntryControlCC {
    constructor(options: WithAddress<EntryControlCCNotificationOptions>);
    // (undocumented)
    readonly dataType: EntryControlDataTypes;
    // (undocumented)
    readonly eventData?: Uint8Array | string;
    // (undocumented)
    readonly eventType: EntryControlEventTypes;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): EntryControlCCNotification;
    // (undocumented)
    readonly sequenceNumber: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "EntryControlCCNotificationOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface EntryControlCCNotificationOptions {
    // (undocumented)
    dataType: EntryControlDataTypes;
    // (undocumented)
    eventData?: string | Bytes;
    // (undocumented)
    eventType: EntryControlEventTypes;
    // (undocumented)
    sequenceNumber: number;
}

// Warning: (ae-missing-release-tag) "EntryControlCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const EntryControlCCValues: Readonly<{
    supportedKeys: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Entry Control"];
            property: "supportedKeys";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Entry Control"];
            readonly endpoint: number;
            readonly property: "supportedKeys";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportedEventTypes: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Entry Control"];
            property: "supportedEventTypes";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Entry Control"];
            readonly endpoint: number;
            readonly property: "supportedEventTypes";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportedDataTypes: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Entry Control"];
            property: "supportedDataTypes";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Entry Control"];
            readonly endpoint: number;
            readonly property: "supportedDataTypes";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    keyCacheTimeout: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Entry Control"];
            property: "keyCacheTimeout";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Entry Control"];
            readonly endpoint: number;
            readonly property: "keyCacheTimeout";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Key cache timeout";
            readonly unit: "seconds";
            readonly description: "How long the key cache must wait for additional characters";
            readonly min: 1;
            readonly max: 10;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    keyCacheSize: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Entry Control"];
            property: "keyCacheSize";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Entry Control"];
            readonly endpoint: number;
            readonly property: "keyCacheSize";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Key cache size";
            readonly description: "Number of character that must be stored before sending";
            readonly min: 1;
            readonly max: 32;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "EntryControlCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum EntryControlCommand {
    // (undocumented)
    ConfigurationGet = 7,
    // (undocumented)
    ConfigurationReport = 8,
    // (undocumented)
    ConfigurationSet = 6,
    // (undocumented)
    EventSupportedGet = 4,
    // (undocumented)
    EventSupportedReport = 5,
    // (undocumented)
    KeySupportedGet = 2,
    // (undocumented)
    KeySupportedReport = 3,
    // (undocumented)
    Notification = 1
}

// Warning: (ae-missing-release-tag) "EntryControlDataTypes" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum EntryControlDataTypes {
    // (undocumented)
    ASCII = 2,
    // (undocumented)
    MD5 = 3,
    // (undocumented)
    None = 0,
    // (undocumented)
    Raw = 1
}

// Warning: (ae-missing-release-tag) "entryControlEventTypeLabels" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const entryControlEventTypeLabels: Record<EntryControlEventTypes, string>;

// Warning: (ae-missing-release-tag) "EntryControlEventTypes" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum EntryControlEventTypes {
    // (undocumented)
    AlertMedical = 19,
    // (undocumented)
    AlertPanic = 18,
    // (undocumented)
    Arm1 = 8,
    // (undocumented)
    Arm2 = 9,
    // (undocumented)
    Arm3 = 10,
    // (undocumented)
    Arm4 = 11,
    // (undocumented)
    Arm5 = 12,
    // (undocumented)
    Arm6 = 13,
    // (undocumented)
    ArmAll = 4,
    // (undocumented)
    ArmAway = 5,
    // (undocumented)
    ArmHome = 6,
    // (undocumented)
    Bell = 15,
    // (undocumented)
    CachedKeys = 1,
    // (undocumented)
    Caching = 0,
    // (undocumented)
    Cancel = 25,
    // (undocumented)
    DisarmAll = 3,
    // (undocumented)
    Enter = 2,
    // (undocumented)
    ExitDelay = 7,
    // (undocumented)
    Fire = 16,
    // (undocumented)
    GateClose = 21,
    // (undocumented)
    GateOpen = 20,
    // (undocumented)
    Lock = 22,
    // (undocumented)
    Police = 17,
    // (undocumented)
    Rfid = 14,
    // (undocumented)
    Test = 24,
    // (undocumented)
    Unlock = 23
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "expectedCCResponse" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function expectedCCResponse<TTarget extends typeof CommandClass, TSent extends CommandClass, TReceived extends CommandClass>(cc: CCConstructor<TReceived> | DynamicCCResponse<TSent, TReceived>, predicate?: CCResponsePredicate<TSent, TReceived>): TypedClassDecorator_2<TTarget>;

// Warning: (ae-forgotten-export) The symbol "S2ExtensionType" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "extensionType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const extensionType: <TTarget extends typeof Security2Extension>(type: S2ExtensionType) => TypedClassDecorator<TTarget>;

// Warning: (ae-missing-release-tag) "FibaroCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FibaroCC extends ManufacturerProprietaryCC {
    constructor(options: CommandClassOptions);
    // (undocumented)
    fibaroCCCommand?: number;
    // (undocumented)
    fibaroCCId?: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): FibaroCC;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes_2;
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "fibaroCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const fibaroCC: <TTarget extends typeof FibaroCC>(fibaroCCId: number) => TypedClassDecorator_2<TTarget>;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "fibaroCCCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const fibaroCCCommand: <TTarget extends typeof FibaroCC>(fibaroCCCommand: number) => TypedClassDecorator_2<TTarget>;

// Warning: (ae-missing-release-tag) "FibaroVenetianBlindCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FibaroVenetianBlindCC extends FibaroCC {
    constructor(options: CommandClassOptions);
    // Warning: (ae-forgotten-export) The symbol "FibaroVenetianBlindCCCommand" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    fibaroCCCommand: FibaroVenetianBlindCCCommand;
    // Warning: (ae-forgotten-export) The symbol "FibaroCCIDs" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    fibaroCCId: FibaroCCIDs.VenetianBlind;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "FibaroVenetianBlindCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FibaroVenetianBlindCCGet extends FibaroVenetianBlindCC {
    constructor(options: CommandClassOptions);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): FibaroVenetianBlindCCGet;
}

// Warning: (ae-missing-release-tag) "FibaroVenetianBlindCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FibaroVenetianBlindCCReport extends FibaroVenetianBlindCC {
    constructor(options: WithAddress<FibaroVenetianBlindCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): FibaroVenetianBlindCCReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    position: MaybeUnknown<number> | undefined;
    // (undocumented)
    tilt: MaybeUnknown<number> | undefined;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "FibaroVenetianBlindCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface FibaroVenetianBlindCCReportOptions {
    // (undocumented)
    position?: MaybeUnknown<number>;
    // (undocumented)
    tilt?: MaybeUnknown<number>;
}

// Warning: (ae-missing-release-tag) "FibaroVenetianBlindCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FibaroVenetianBlindCCSet extends FibaroVenetianBlindCC {
    constructor(options: WithAddress<FibaroVenetianBlindCCSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): FibaroVenetianBlindCCSet;
    // (undocumented)
    position: number | undefined;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes_2;
    // (undocumented)
    tilt: number | undefined;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "FibaroVenetianBlindCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type FibaroVenetianBlindCCSetOptions = {
    position: number;
} | {
    tilt: number;
} | {
    position: number;
    tilt: number;
};

// Warning: (ae-missing-release-tag) "FirmwareDownloadStatus" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum FirmwareDownloadStatus {
    // (undocumented)
    Error_AuthenticationExpected = 1,
    // (undocumented)
    Error_FragmentSizeTooLarge = 2,
    // (undocumented)
    Error_InvalidHardwareVersion = 4,
    // (undocumented)
    Error_InvalidManufacturerOrFirmwareID = 0,
    // (undocumented)
    Error_NotDownloadable = 3,
    // (undocumented)
    OK = 255
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateActivationStatus" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum FirmwareUpdateActivationStatus {
    // (undocumented)
    Error_ActivationFailed = 1,
    // (undocumented)
    Error_InvalidFirmware = 0,
    // (undocumented)
    OK = 255
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateCapabilities" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type FirmwareUpdateCapabilities = {
    readonly firmwareUpgradable: false;
} | {
    readonly firmwareUpgradable: true;
    readonly firmwareTargets: readonly number[];
    readonly continuesToFunction: MaybeNotKnown<boolean>;
    readonly supportsActivation: MaybeNotKnown<boolean>;
    readonly supportsResuming: MaybeNotKnown<boolean>;
    readonly supportsNonSecureTransfer: MaybeNotKnown<boolean>;
};

// Warning: (ae-missing-release-tag) "FirmwareUpdateInitResult" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface FirmwareUpdateInitResult {
    nonSecureTransfer?: boolean;
    resume?: boolean;
    // (undocumented)
    status: FirmwareUpdateRequestStatus;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaData" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface FirmwareUpdateMetaData {
    // (undocumented)
    additionalFirmwareIDs: readonly number[];
    // (undocumented)
    checksum: number;
    // (undocumented)
    continuesToFunction: MaybeNotKnown<boolean>;
    // (undocumented)
    firmwareId: number;
    // (undocumented)
    firmwareUpgradable: boolean;
    // (undocumented)
    hardwareVersion?: number;
    // (undocumented)
    manufacturerId: number;
    // (undocumented)
    maxFragmentSize?: number;
    // (undocumented)
    supportsActivation: MaybeNotKnown<boolean>;
    // (undocumented)
    supportsNonSecureTransfer?: MaybeNotKnown<boolean>;
    // (undocumented)
    supportsResuming?: MaybeNotKnown<boolean>;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FirmwareUpdateMetaDataCC extends CommandClass {
    // (undocumented)
    ccCommand: FirmwareUpdateMetaDataCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    skipEndpointInterview(): boolean;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCActivationReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FirmwareUpdateMetaDataCCActivationReport extends FirmwareUpdateMetaDataCC {
    constructor(options: WithAddress<FirmwareUpdateMetaDataCCActivationReportOptions>);
    // (undocumented)
    readonly activationStatus: FirmwareUpdateActivationStatus;
    // (undocumented)
    readonly checksum: number;
    // (undocumented)
    readonly firmwareId: number;
    // (undocumented)
    readonly firmwareTarget: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): FirmwareUpdateMetaDataCCActivationReport;
    // (undocumented)
    readonly hardwareVersion?: number;
    // (undocumented)
    readonly manufacturerId: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCActivationReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface FirmwareUpdateMetaDataCCActivationReportOptions {
    // (undocumented)
    activationStatus: FirmwareUpdateActivationStatus;
    // (undocumented)
    checksum: number;
    // (undocumented)
    firmwareId: number;
    // (undocumented)
    firmwareTarget: number;
    // (undocumented)
    hardwareVersion?: number;
    // (undocumented)
    manufacturerId: number;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCActivationSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FirmwareUpdateMetaDataCCActivationSet extends FirmwareUpdateMetaDataCC {
    constructor(options: WithAddress<FirmwareUpdateMetaDataCCActivationSetOptions>);
    // (undocumented)
    checksum: number;
    // (undocumented)
    firmwareId: number;
    // (undocumented)
    firmwareTarget: number;
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): FirmwareUpdateMetaDataCCActivationSet;
    // (undocumented)
    hardwareVersion?: number;
    // (undocumented)
    manufacturerId: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCActivationSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface FirmwareUpdateMetaDataCCActivationSetOptions {
    // (undocumented)
    checksum: number;
    // (undocumented)
    firmwareId: number;
    // (undocumented)
    firmwareTarget: number;
    // (undocumented)
    hardwareVersion?: number;
    // (undocumented)
    manufacturerId: number;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FirmwareUpdateMetaDataCCGet extends FirmwareUpdateMetaDataCC {
    constructor(options: WithAddress<FirmwareUpdateMetaDataCCGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): FirmwareUpdateMetaDataCCGet;
    // (undocumented)
    readonly numReports: number;
    // (undocumented)
    readonly reportNumber: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface FirmwareUpdateMetaDataCCGetOptions {
    // (undocumented)
    numReports: number;
    // (undocumented)
    reportNumber: number;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCMetaDataGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FirmwareUpdateMetaDataCCMetaDataGet extends FirmwareUpdateMetaDataCC {
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCMetaDataReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FirmwareUpdateMetaDataCCMetaDataReport extends FirmwareUpdateMetaDataCC implements FirmwareUpdateMetaData {
    constructor(options: WithAddress<FirmwareUpdateMetaDataCCMetaDataReportOptions>);
    // (undocumented)
    readonly additionalFirmwareIDs: readonly number[];
    // (undocumented)
    readonly checksum: number;
    // (undocumented)
    readonly continuesToFunction: MaybeNotKnown<boolean>;
    // (undocumented)
    readonly firmwareId: number;
    // (undocumented)
    readonly firmwareUpgradable: boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): FirmwareUpdateMetaDataCCMetaDataReport;
    // (undocumented)
    readonly hardwareVersion?: number;
    // (undocumented)
    readonly manufacturerId: number;
    // (undocumented)
    readonly maxFragmentSize?: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly supportsActivation: MaybeNotKnown<boolean>;
    // (undocumented)
    readonly supportsNonSecureTransfer?: MaybeNotKnown<boolean>;
    // (undocumented)
    readonly supportsResuming?: MaybeNotKnown<boolean>;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCMetaDataReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface FirmwareUpdateMetaDataCCMetaDataReportOptions {
    // (undocumented)
    additionalFirmwareIDs?: readonly number[];
    // (undocumented)
    checksum?: number;
    // (undocumented)
    continuesToFunction?: MaybeNotKnown<boolean>;
    // (undocumented)
    firmwareId?: number;
    // (undocumented)
    firmwareUpgradable: boolean;
    // (undocumented)
    hardwareVersion?: number;
    // (undocumented)
    manufacturerId: number;
    // (undocumented)
    maxFragmentSize?: number;
    // (undocumented)
    supportsActivation?: MaybeNotKnown<boolean>;
    // (undocumented)
    supportsNonSecureTransfer?: MaybeNotKnown<boolean>;
    // (undocumented)
    supportsResuming?: MaybeNotKnown<boolean>;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCPrepareGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FirmwareUpdateMetaDataCCPrepareGet extends FirmwareUpdateMetaDataCC {
    constructor(options: WithAddress<FirmwareUpdateMetaDataCCPrepareGetOptions>);
    // (undocumented)
    firmwareId: number;
    // (undocumented)
    firmwareTarget: number;
    // (undocumented)
    fragmentSize: number;
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): FirmwareUpdateMetaDataCCPrepareGet;
    // (undocumented)
    hardwareVersion: number;
    // (undocumented)
    manufacturerId: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCPrepareGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface FirmwareUpdateMetaDataCCPrepareGetOptions {
    // (undocumented)
    firmwareId: number;
    // (undocumented)
    firmwareTarget: number;
    // (undocumented)
    fragmentSize: number;
    // (undocumented)
    hardwareVersion: number;
    // (undocumented)
    manufacturerId: number;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCPrepareReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FirmwareUpdateMetaDataCCPrepareReport extends FirmwareUpdateMetaDataCC {
    constructor(options: WithAddress<FirmwareUpdateMetaDataCCPrepareReportOptions>);
    // (undocumented)
    readonly checksum: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): FirmwareUpdateMetaDataCCPrepareReport;
    // (undocumented)
    readonly status: FirmwareDownloadStatus;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCPrepareReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface FirmwareUpdateMetaDataCCPrepareReportOptions {
    // (undocumented)
    checksum: number;
    // (undocumented)
    status: FirmwareDownloadStatus;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FirmwareUpdateMetaDataCCReport extends FirmwareUpdateMetaDataCC {
    constructor(options: WithAddress<FirmwareUpdateMetaDataCCReportOptions>);
    // (undocumented)
    firmwareData: Uint8Array;
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): FirmwareUpdateMetaDataCCReport;
    // (undocumented)
    isLast: boolean;
    // (undocumented)
    reportNumber: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface FirmwareUpdateMetaDataCCReportOptions {
    // (undocumented)
    firmwareData: Uint8Array;
    // (undocumented)
    isLast: boolean;
    // (undocumented)
    reportNumber: number;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCRequestGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FirmwareUpdateMetaDataCCRequestGet extends FirmwareUpdateMetaDataCC {
    constructor(options: WithAddress<FirmwareUpdateMetaDataCCRequestGetOptions>);
    // (undocumented)
    activation?: boolean;
    // (undocumented)
    checksum: number;
    // (undocumented)
    firmwareId: number;
    // (undocumented)
    firmwareTarget?: number;
    // (undocumented)
    fragmentSize?: number;
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): FirmwareUpdateMetaDataCCRequestGet;
    // (undocumented)
    hardwareVersion?: number;
    // (undocumented)
    manufacturerId: number;
    // (undocumented)
    nonSecureTransfer?: boolean;
    // (undocumented)
    resume?: boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCRequestGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type FirmwareUpdateMetaDataCCRequestGetOptions = {
    manufacturerId: number;
    firmwareId: number;
    checksum: number;
} & AllOrNone<{
    firmwareTarget: number;
    fragmentSize: number;
    activation?: boolean;
    hardwareVersion?: number;
    resume?: boolean;
    nonSecureTransfer?: boolean;
}>;

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCRequestReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FirmwareUpdateMetaDataCCRequestReport extends FirmwareUpdateMetaDataCC {
    constructor(options: WithAddress<FirmwareUpdateMetaDataCCRequestReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): FirmwareUpdateMetaDataCCRequestReport;
    // (undocumented)
    nonSecureTransfer?: boolean;
    // (undocumented)
    resume?: boolean;
    // (undocumented)
    readonly status: FirmwareUpdateRequestStatus;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCRequestReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface FirmwareUpdateMetaDataCCRequestReportOptions {
    // (undocumented)
    nonSecureTransfer?: boolean;
    // (undocumented)
    resume?: boolean;
    // (undocumented)
    status: FirmwareUpdateRequestStatus;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCStatusReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class FirmwareUpdateMetaDataCCStatusReport extends FirmwareUpdateMetaDataCC {
    constructor(options: WithAddress<FirmwareUpdateMetaDataCCStatusReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): FirmwareUpdateMetaDataCCStatusReport;
    // (undocumented)
    readonly status: FirmwareUpdateStatus;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    readonly waitTime?: number;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCStatusReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface FirmwareUpdateMetaDataCCStatusReportOptions {
    // (undocumented)
    status: FirmwareUpdateStatus;
    // (undocumented)
    waitTime?: number;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const FirmwareUpdateMetaDataCCValues: Readonly<{
    supportsNonSecureTransfer: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Firmware Update Meta Data"];
            property: "supportsNonSecureTransfer";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Firmware Update Meta Data"];
            readonly endpoint: number;
            readonly property: "supportsNonSecureTransfer";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportsResuming: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Firmware Update Meta Data"];
            property: "supportsResuming";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Firmware Update Meta Data"];
            readonly endpoint: number;
            readonly property: "supportsResuming";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    continuesToFunction: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Firmware Update Meta Data"];
            property: "continuesToFunction";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Firmware Update Meta Data"];
            readonly endpoint: number;
            readonly property: "continuesToFunction";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    additionalFirmwareIDs: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Firmware Update Meta Data"];
            property: "additionalFirmwareIDs";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Firmware Update Meta Data"];
            readonly endpoint: number;
            readonly property: "additionalFirmwareIDs";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    firmwareUpgradable: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Firmware Update Meta Data"];
            property: "firmwareUpgradable";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Firmware Update Meta Data"];
            readonly endpoint: number;
            readonly property: "firmwareUpgradable";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportsActivation: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Firmware Update Meta Data"];
            property: "supportsActivation";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Firmware Update Meta Data"];
            readonly endpoint: number;
            readonly property: "supportsActivation";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "FirmwareUpdateMetaDataCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum FirmwareUpdateMetaDataCommand {
    // (undocumented)
    ActivationReport = 9,
    // (undocumented)
    ActivationSet = 8,
    // (undocumented)
    Get = 5,
    // (undocumented)
    MetaDataGet = 1,
    // (undocumented)
    MetaDataReport = 2,
    // (undocumented)
    PrepareGet = 10,
    // (undocumented)
    PrepareReport = 11,
    // (undocumented)
    Report = 6,
    // (undocumented)
    RequestGet = 3,
    // (undocumented)
    RequestReport = 4,
    // (undocumented)
    StatusReport = 7
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface FirmwareUpdateOptions {
    nonSecureTransfer?: boolean;
    resume?: boolean;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateProgress" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface FirmwareUpdateProgress {
    currentFile: number;
    progress: number;
    sentFragments: number;
    totalFiles: number;
    totalFragments: number;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateRequestStatus" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum FirmwareUpdateRequestStatus {
    // (undocumented)
    Error_AuthenticationExpected = 1,
    // (undocumented)
    Error_BatteryLow = 6,
    // (undocumented)
    Error_FirmwareUpgradeInProgress = 5,
    // (undocumented)
    Error_FragmentSizeTooLarge = 2,
    // (undocumented)
    Error_InvalidHardwareVersion = 4,
    // (undocumented)
    Error_InvalidManufacturerOrFirmwareID = 0,
    // (undocumented)
    Error_NotUpgradable = 3,
    // (undocumented)
    OK = 255
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateResult" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface FirmwareUpdateResult {
    reInterview: boolean;
    status: FirmwareUpdateStatus;
    success: boolean;
    waitTime?: number;
}

// Warning: (ae-missing-release-tag) "FirmwareUpdateStatus" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum FirmwareUpdateStatus {
    // (undocumented)
    Error_Checksum = 0,
    // (undocumented)
    Error_InsufficientMemory = 7,
    // (undocumented)
    Error_InvalidFirmwareID = 3,
    // (undocumented)
    Error_InvalidFirmwareTarget = 4,
    // (undocumented)
    Error_InvalidHardwareVersion = 8,
    // (undocumented)
    Error_InvalidHeaderFormat = 6,
    // (undocumented)
    Error_InvalidHeaderInformation = 5,
    // (undocumented)
    Error_InvalidManufacturerID = 2,
    // (undocumented)
    Error_Timeout = -1,
    Error_TransmissionFailed = 1,
    // (undocumented)
    OK_NoRestart = 254,
    // (undocumented)
    OK_RestartPending = 255,
    // (undocumented)
    OK_WaitingForActivation = 253
}

// Warning: (ae-missing-release-tag) "FLiRS2WakeUpTime" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function FLiRS2WakeUpTime(value: FLiRS_2): WakeUpTime;

// Warning: (ae-missing-release-tag) "getAllAssociationGroups" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
function getAllAssociationGroups(ctx: GetValueDB & GetDeviceConfig, node: NodeId & GetAllEndpoints<EndpointId_2 & SupportsCC>): ReadonlyMap<number, ReadonlyMap<number, AssociationGroup>>;

// Warning: (ae-missing-release-tag) "getAllAssociations" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
function getAllAssociations(ctx: GetValueDB, node: NodeId & GetAllEndpoints<EndpointId_2 & SupportsCC>): ReadonlyObjectKeyMap<AssociationAddress, ReadonlyMap<number, readonly AssociationAddress[]>>;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "getAPI" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getAPI(cc: CommandClasses_2): APIConstructor | undefined;

// Warning: (ae-missing-release-tag) "getAssociationGroups" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
function getAssociationGroups(ctx: GetValueDB & GetDeviceConfig, endpoint: EndpointId_2 & SupportsCC): ReadonlyMap<number, AssociationGroup>;

// Warning: (ae-missing-release-tag) "getAssociations" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
function getAssociations(ctx: GetValueDB, endpoint: EndpointId_2 & SupportsCC): ReadonlyMap<number, readonly AssociationAddress[]>;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "getCCCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const getCCCommand: (target: CommandClass) => number | undefined;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "getCCCommandConstructor" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const getCCCommandConstructor: (ccId: CommandClasses_2, ccCommand: number) => CCConstructor<CommandClass> | undefined;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "getCCConstructor" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const getCCConstructor: (ccId: CommandClasses_2) => CCConstructor<CommandClass> | undefined;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "getCCResponsePredicate" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getCCResponsePredicate<T extends CommandClass>(ccClass: T): CCResponsePredicate<T> | undefined;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-forgotten-export) The symbol "StaticCCValueFactory" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "getCCValueProperties" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getCCValueProperties<TTarget extends CommandClass>(target: TTarget): ReadonlyMap<string | number, StaticCCValue | StaticCCValueFactory<TTarget>>;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "getCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getCCValues<T extends CommandClass>(cc: T | CommandClasses_2): Record<string, StaticCCValue | DynamicCCValue | undefined> | undefined;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "getCommandClass" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getCommandClass(cc: CommandClass | CCAPI): CommandClasses_2;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "getCommandClassStatic" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getCommandClassStatic<T extends CCConstructor<CommandClass>>(classConstructor: T): CommandClasses_2;

// Warning: (ae-missing-release-tag) "getEffectiveCCVersion" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function getEffectiveCCVersion(ctx: GetSupportedCCVersion, cc: CCId, defaultVersion?: number): number;

// Warning: (ae-missing-release-tag) "getEnergyProductionScale" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function getEnergyProductionScale(parameter: EnergyProductionParameter, key: number): EnergyProductionScale;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "getExpectedCCResponse" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getExpectedCCResponse<T extends CommandClass>(ccClass: T): typeof CommandClass | DynamicCCResponse<T> | undefined;

// Warning: (ae-missing-release-tag) "getExtensionType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const getExtensionType: (target: Security2Extension) => S2ExtensionType | undefined;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "getFibaroCCCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const getFibaroCCCommand: (target: FibaroCC) => number | undefined;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-forgotten-export) The symbol "ManufacturerProprietaryCCConstructor" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "getFibaroCCCommandConstructor" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const getFibaroCCCommandConstructor: (fibaroCCId: number, fibaroCCCommand: number) => ManufacturerProprietaryCCConstructor<typeof FibaroCC> | undefined;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "getFibaroCCConstructor" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const getFibaroCCConstructor: (fibaroCCId: number) => ManufacturerProprietaryCCConstructor<typeof FibaroCC> | undefined;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "getFibaroCCId" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const getFibaroCCId: (target: FibaroCC) => number | undefined;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "getImplementedVersion" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getImplementedVersion<T extends CommandClass>(cc: T | CommandClasses_2): number;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "getImplementedVersionStatic" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getImplementedVersionStatic<T extends CCConstructor<CommandClass>>(classConstructor: T): number;

// Warning: (ae-missing-release-tag) "getInnermostCommandClass" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function getInnermostCommandClass(cc: CommandClass): CommandClass;

// Warning: (ae-missing-release-tag) "getLifelineGroupIds" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
function getLifelineGroupIds(ctx: GetValueDB & GetDeviceConfig, endpoint: EndpointId_2 & SupportsCC): number[];

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "getManufacturerId" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const getManufacturerId: (target: ManufacturerProprietaryCC) => number | undefined;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "getManufacturerIdStatic" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function getManufacturerIdStatic<T extends ManufacturerProprietaryCCConstructor>(classConstructor: T): number;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-forgotten-export) The symbol "ManufacturerProprietaryCCAPI_2" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "getManufacturerProprietaryAPI" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const getManufacturerProprietaryAPI: (manufacturerId: number) => APIConstructor<ManufacturerProprietaryCCAPI_2> | undefined;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "getManufacturerProprietaryCCConstructor" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const getManufacturerProprietaryCCConstructor: (manufacturerId: number) => ManufacturerProprietaryCCConstructor | undefined;

// Warning: (ae-forgotten-export) The symbol "Security2ExtensionConstructor" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "getS2ExtensionConstructor" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const getS2ExtensionConstructor: (type: S2ExtensionType) => Security2ExtensionConstructor<Security2Extension> | undefined;

// Warning: (ae-missing-release-tag) "HailCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HailCC extends CommandClass {
    // (undocumented)
    ccCommand: HailCommand.Hail;
}

// Warning: (ae-missing-release-tag) "HailCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum HailCommand {
    // (undocumented)
    Hail = 1
}

// Warning: (ae-missing-release-tag) "HumidityControlMode" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum HumidityControlMode {
    // (undocumented)
    "De-humidify" = 2,
    // (undocumented)
    "Auto" = 3,
    // (undocumented)
    "Humidify" = 1,
    // (undocumented)
    "Off" = 0
}

// Warning: (ae-missing-release-tag) "HumidityControlModeCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlModeCC extends CommandClass {
    // (undocumented)
    ccCommand: HumidityControlModeCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "HumidityControlModeCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlModeCCGet extends HumidityControlModeCC {
}

// Warning: (ae-missing-release-tag) "HumidityControlModeCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlModeCCReport extends HumidityControlModeCC {
    constructor(options: WithAddress<HumidityControlModeCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): HumidityControlModeCCReport;
    // (undocumented)
    readonly mode: HumidityControlMode;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "HumidityControlModeCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface HumidityControlModeCCReportOptions {
    // (undocumented)
    mode: HumidityControlMode;
}

// Warning: (ae-missing-release-tag) "HumidityControlModeCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlModeCCSet extends HumidityControlModeCC {
    constructor(options: WithAddress<HumidityControlModeCCSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): HumidityControlModeCCSet;
    // (undocumented)
    mode: HumidityControlMode;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "HumidityControlModeCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface HumidityControlModeCCSetOptions {
    // (undocumented)
    mode: HumidityControlMode;
}

// Warning: (ae-missing-release-tag) "HumidityControlModeCCSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlModeCCSupportedGet extends HumidityControlModeCC {
}

// Warning: (ae-missing-release-tag) "HumidityControlModeCCSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlModeCCSupportedReport extends HumidityControlModeCC {
    constructor(options: WithAddress<HumidityControlModeCCSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): HumidityControlModeCCSupportedReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    supportedModes: HumidityControlMode[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "HumidityControlModeCCSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface HumidityControlModeCCSupportedReportOptions {
    // (undocumented)
    supportedModes: HumidityControlMode[];
}

// Warning: (ae-missing-release-tag) "HumidityControlModeCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const HumidityControlModeCCValues: Readonly<{
    supportedModes: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Humidity Control Mode"];
            property: "supportedModes";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Humidity Control Mode"];
            readonly endpoint: number;
            readonly property: "supportedModes";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    mode: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Humidity Control Mode"];
            property: "mode";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Humidity Control Mode"];
            readonly endpoint: number;
            readonly property: "mode";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly states: {
                [x: number]: string;
            };
            readonly label: "Humidity control mode";
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "HumidityControlModeCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum HumidityControlModeCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1,
    // (undocumented)
    SupportedGet = 4,
    // (undocumented)
    SupportedReport = 5
}

// Warning: (ae-missing-release-tag) "HumidityControlOperatingState" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum HumidityControlOperatingState {
    // (undocumented)
    "De-humidifying" = 2,
    // (undocumented)
    "Humidifying" = 1,
    // (undocumented)
    "Idle" = 0
}

// Warning: (ae-missing-release-tag) "HumidityControlOperatingStateCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlOperatingStateCC extends CommandClass {
    // (undocumented)
    ccCommand: HumidityControlOperatingStateCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "HumidityControlOperatingStateCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlOperatingStateCCGet extends HumidityControlOperatingStateCC {
}

// Warning: (ae-missing-release-tag) "HumidityControlOperatingStateCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlOperatingStateCCReport extends HumidityControlOperatingStateCC {
    constructor(options: WithAddress<HumidityControlOperatingStateCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): HumidityControlOperatingStateCCReport;
    // (undocumented)
    readonly state: HumidityControlOperatingState;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "HumidityControlOperatingStateCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface HumidityControlOperatingStateCCReportOptions {
    // (undocumented)
    state: HumidityControlOperatingState;
}

// Warning: (ae-missing-release-tag) "HumidityControlOperatingStateCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const HumidityControlOperatingStateCCValues: Readonly<{
    state: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Humidity Control Operating State"];
            property: "state";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Humidity Control Operating State"];
            readonly endpoint: number;
            readonly property: "state";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly states: {
                [x: number]: string;
            };
            readonly label: "Humidity control operating state";
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "HumidityControlOperatingStateCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum HumidityControlOperatingStateCommand {
    // (undocumented)
    Get = 1,
    // (undocumented)
    Report = 2
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCapabilities" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface HumidityControlSetpointCapabilities {
    // (undocumented)
    maxValue: number;
    // (undocumented)
    maxValueScale: number;
    // (undocumented)
    minValue: number;
    // (undocumented)
    minValueScale: number;
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlSetpointCC extends CommandClass {
    // (undocumented)
    ccCommand: HumidityControlSetpointCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
    // (undocumented)
    translatePropertyKey(ctx: GetValueDB_2, property: string | number, propertyKey: string | number): string | undefined;
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCCapabilitiesGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlSetpointCCCapabilitiesGet extends HumidityControlSetpointCC {
    constructor(options: WithAddress<HumidityControlSetpointCCCapabilitiesGetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): HumidityControlSetpointCCCapabilitiesGet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    setpointType: HumidityControlSetpointType;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCCapabilitiesGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface HumidityControlSetpointCCCapabilitiesGetOptions {
    // (undocumented)
    setpointType: HumidityControlSetpointType;
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCCapabilitiesReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlSetpointCCCapabilitiesReport extends HumidityControlSetpointCC {
    constructor(options: WithAddress<HumidityControlSetpointCCCapabilitiesReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): HumidityControlSetpointCCCapabilitiesReport;
    // (undocumented)
    maxValue: number;
    // (undocumented)
    maxValueScale: number;
    // (undocumented)
    minValue: number;
    // (undocumented)
    minValueScale: number;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    type: HumidityControlSetpointType;
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCCapabilitiesReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface HumidityControlSetpointCCCapabilitiesReportOptions {
    // (undocumented)
    maxValue: number;
    // (undocumented)
    maxValueScale: number;
    // (undocumented)
    minValue: number;
    // (undocumented)
    minValueScale: number;
    // (undocumented)
    type: HumidityControlSetpointType;
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlSetpointCCGet extends HumidityControlSetpointCC {
    constructor(options: WithAddress<HumidityControlSetpointCCGetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): HumidityControlSetpointCCGet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    setpointType: HumidityControlSetpointType;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface HumidityControlSetpointCCGetOptions {
    // (undocumented)
    setpointType: HumidityControlSetpointType;
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlSetpointCCReport extends HumidityControlSetpointCC {
    constructor(options: WithAddress<HumidityControlSetpointCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): HumidityControlSetpointCCReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    scale: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    type: HumidityControlSetpointType;
    // (undocumented)
    value: number;
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface HumidityControlSetpointCCReportOptions {
    // (undocumented)
    scale: number;
    // (undocumented)
    type: HumidityControlSetpointType;
    // (undocumented)
    value: number;
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCScaleSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlSetpointCCScaleSupportedGet extends HumidityControlSetpointCC {
    constructor(options: WithAddress<HumidityControlSetpointCCScaleSupportedGetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): HumidityControlSetpointCCScaleSupportedGet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    setpointType: HumidityControlSetpointType;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCScaleSupportedGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface HumidityControlSetpointCCScaleSupportedGetOptions {
    // (undocumented)
    setpointType: HumidityControlSetpointType;
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCScaleSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlSetpointCCScaleSupportedReport extends HumidityControlSetpointCC {
    constructor(options: WithAddress<HumidityControlSetpointCCScaleSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): HumidityControlSetpointCCScaleSupportedReport;
    // (undocumented)
    readonly supportedScales: readonly number[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCScaleSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface HumidityControlSetpointCCScaleSupportedReportOptions {
    // (undocumented)
    supportedScales: number[];
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlSetpointCCSet extends HumidityControlSetpointCC {
    constructor(options: WithAddress<HumidityControlSetpointCCSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): HumidityControlSetpointCCSet;
    // (undocumented)
    scale: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    setpointType: HumidityControlSetpointType;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    value: number;
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface HumidityControlSetpointCCSetOptions {
    // (undocumented)
    scale: number;
    // (undocumented)
    setpointType: HumidityControlSetpointType;
    // (undocumented)
    value: number;
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlSetpointCCSupportedGet extends HumidityControlSetpointCC {
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class HumidityControlSetpointCCSupportedReport extends HumidityControlSetpointCC {
    constructor(options: WithAddress<HumidityControlSetpointCCSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): HumidityControlSetpointCCSupportedReport;
    // (undocumented)
    readonly supportedSetpointTypes: readonly HumidityControlSetpointType[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface HumidityControlSetpointCCSupportedReportOptions {
    // (undocumented)
    supportedSetpointTypes: HumidityControlSetpointType[];
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const HumidityControlSetpointCCValues: Readonly<{
    setpointScale: ((setpointType: number) => {
        readonly meta: {
            readonly label: `Setpoint scale (${string})`;
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Humidity Control Setpoint"];
            property: "setpointScale";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Humidity Control Setpoint"];
            readonly endpoint: number;
            readonly property: "setpointScale";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    setpoint: ((setpointType: number) => {
        readonly meta: {
            readonly label: `Setpoint (${string})`;
            readonly ccSpecific: {
                readonly setpointType: number;
            };
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Humidity Control Setpoint"];
            property: "setpoint";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Humidity Control Setpoint"];
            readonly endpoint: number;
            readonly property: "setpoint";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    supportedSetpointTypes: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Humidity Control Setpoint"];
            property: "supportedSetpointTypes";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Humidity Control Setpoint"];
            readonly endpoint: number;
            readonly property: "supportedSetpointTypes";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "HumidityControlSetpointCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum HumidityControlSetpointCommand {
    // (undocumented)
    CapabilitiesGet = 8,
    // (undocumented)
    CapabilitiesReport = 9,
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    ScaleSupportedGet = 6,
    // (undocumented)
    ScaleSupportedReport = 7,
    // (undocumented)
    Set = 1,
    // (undocumented)
    SupportedGet = 4,
    // (undocumented)
    SupportedReport = 5
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointMetadata" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type HumidityControlSetpointMetadata = ValueMetadata_2 & {
    ccSpecific: {
        setpointType: HumidityControlSetpointType;
    };
};

// Warning: (ae-missing-release-tag) "HumidityControlSetpointType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum HumidityControlSetpointType {
    // (undocumented)
    "De-humidifier" = 2,
    // (undocumented)
    "N/A" = 0,// CC v1
    // (undocumented)
    "Auto" = 3,// CC v1
    // (undocumented)
    "Humidifier" = 1
}

// Warning: (ae-missing-release-tag) "HumidityControlSetpointValue" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface HumidityControlSetpointValue {
    // (undocumented)
    scale: number;
    // (undocumented)
    value: number;
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "implementedVersion" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const implementedVersion: <TTarget extends typeof CommandClass>(version: number) => TypedClassDecorator_2<TTarget>;

// Warning: (ae-missing-release-tag) "InclusionControllerCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class InclusionControllerCC extends CommandClass {
    // (undocumented)
    ccCommand: InclusionControllerCommand;
}

// Warning: (ae-missing-release-tag) "InclusionControllerCCComplete" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class InclusionControllerCCComplete extends InclusionControllerCC {
    constructor(options: WithAddress_2<InclusionControllerCCCompleteOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): InclusionControllerCCComplete;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    status: InclusionControllerStatus;
    // (undocumented)
    step: InclusionControllerStep;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "InclusionControllerCCCompleteOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface InclusionControllerCCCompleteOptions {
    // (undocumented)
    status: InclusionControllerStatus;
    // (undocumented)
    step: InclusionControllerStep;
}

// Warning: (ae-missing-release-tag) "InclusionControllerCCInitiate" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class InclusionControllerCCInitiate extends InclusionControllerCC {
    constructor(options: WithAddress_2<InclusionControllerCCInitiateOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): InclusionControllerCCInitiate;
    // (undocumented)
    includedNodeId: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    step: InclusionControllerStep;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "InclusionControllerCCInitiateOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface InclusionControllerCCInitiateOptions {
    // (undocumented)
    includedNodeId: number;
    // (undocumented)
    step: InclusionControllerStep;
}

// Warning: (ae-missing-release-tag) "InclusionControllerCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum InclusionControllerCommand {
    // (undocumented)
    Complete = 2,
    // (undocumented)
    Initiate = 1
}

// Warning: (ae-missing-release-tag) "InclusionControllerStatus" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum InclusionControllerStatus {
    // (undocumented)
    Failed = 3,
    // (undocumented)
    NotSupported = 4,
    // (undocumented)
    OK = 1,
    // (undocumented)
    UserRejected = 2
}

// Warning: (ae-missing-release-tag) "InclusionControllerStep" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum InclusionControllerStep {
    // (undocumented)
    ProxyInclusion = 1,
    // (undocumented)
    ProxyInclusionReplace = 3,
    // (undocumented)
    S0Inclusion = 2
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "inclusionTimeouts" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const inclusionTimeouts: Readonly<{
    readonly TA1: 10000;
    readonly TA2: 10000;
    readonly TA3: 10000;
    readonly TA4: 10000;
    readonly TA5: 10000;
    readonly TAI1: 240000;
    readonly TAI2: 240000;
    readonly TB1: 30000;
    readonly TB2: 240000;
    readonly TB3: 10000;
    readonly TB4: 10000;
    readonly TB5: 10000;
    readonly TBI1: 240000;
}>;

// Warning: (ae-missing-release-tag) "IndicatorCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IndicatorCC extends CommandClass {
    // (undocumented)
    ccCommand: IndicatorCommand;
    // (undocumented)
    static getSupportedPropertyIDsCached(ctx: GetValueDB_2, endpoint: EndpointId_2, indicatorId: number): MaybeNotKnown<number[]>;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
    // (undocumented)
    protected supportsV2Indicators(ctx: GetValueDB_2): boolean;
    // (undocumented)
    translateProperty(ctx: GetValueDB_2, property: string | number, propertyKey?: string | number): string;
    // (undocumented)
    translatePropertyKey(ctx: GetValueDB_2, property: string | number, propertyKey: string | number): string | undefined;
}

// Warning: (ae-missing-release-tag) "IndicatorCCDescriptionGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IndicatorCCDescriptionGet extends IndicatorCC {
    constructor(options: WithAddress<IndicatorCCDescriptionGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): IndicatorCCDescriptionGet;
    // (undocumented)
    indicatorId: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "IndicatorCCDescriptionGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IndicatorCCDescriptionGetOptions {
    // (undocumented)
    indicatorId: number;
}

// Warning: (ae-missing-release-tag) "IndicatorCCDescriptionReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IndicatorCCDescriptionReport extends IndicatorCC {
    constructor(options: WithAddress<IndicatorCCDescriptionReportOptions>);
    // (undocumented)
    description: string;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): IndicatorCCDescriptionReport;
    // (undocumented)
    indicatorId: number;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "IndicatorCCDescriptionReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IndicatorCCDescriptionReportOptions {
    // (undocumented)
    description: string;
    // (undocumented)
    indicatorId: number;
}

// Warning: (ae-missing-release-tag) "IndicatorCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IndicatorCCGet extends IndicatorCC {
    constructor(options: WithAddress<IndicatorCCGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): IndicatorCCGet;
    // (undocumented)
    indicatorId: number | undefined;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "IndicatorCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IndicatorCCGetOptions {
    // (undocumented)
    indicatorId?: number;
}

// Warning: (ae-missing-release-tag) "IndicatorCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IndicatorCCReport extends IndicatorCC {
    constructor(options: WithAddress<IndicatorCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): IndicatorCCReport;
    // (undocumented)
    readonly indicator0Value: number | undefined;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    readonly values: IndicatorObject[] | undefined;
}

// Warning: (ae-missing-release-tag) "IndicatorCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type IndicatorCCReportOptions = {
    value: number;
} | {
    values: IndicatorObject[];
};

// Warning: (ae-missing-release-tag) "IndicatorCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IndicatorCCSet extends IndicatorCC {
    constructor(options: WithAddress<IndicatorCCSetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): IndicatorCCSet;
    // (undocumented)
    indicator0Value: number | undefined;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    values: IndicatorObject[] | undefined;
}

// Warning: (ae-missing-release-tag) "IndicatorCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type IndicatorCCSetOptions = {
    value: number;
} | {
    values: IndicatorObject[];
};

// Warning: (ae-missing-release-tag) "IndicatorCCSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IndicatorCCSupportedGet extends IndicatorCC {
    constructor(options: WithAddress<IndicatorCCSupportedGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): IndicatorCCSupportedGet;
    // (undocumented)
    indicatorId: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "IndicatorCCSupportedGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IndicatorCCSupportedGetOptions {
    // (undocumented)
    indicatorId: number;
}

// Warning: (ae-missing-release-tag) "IndicatorCCSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IndicatorCCSupportedReport extends IndicatorCC {
    constructor(options: WithAddress<IndicatorCCSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): IndicatorCCSupportedReport;
    // (undocumented)
    readonly indicatorId: number;
    // (undocumented)
    readonly nextIndicatorId: number;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly supportedProperties: readonly number[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "IndicatorCCSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IndicatorCCSupportedReportOptions {
    // (undocumented)
    indicatorId: number;
    // (undocumented)
    nextIndicatorId: number;
    // (undocumented)
    supportedProperties: readonly number[];
}

// Warning: (ae-missing-release-tag) "IndicatorCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const IndicatorCCValues: Readonly<{
    indicatorDescription: ((indicatorId: number) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Indicator;
            property: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Indicator;
            readonly endpoint: number;
            readonly property: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
            readonly minVersion: 4;
        };
    };
    valueV2: ((indicatorId: number, propertyId: number) => {
        readonly meta: {
            readonly ccSpecific: {
                indicatorId: number;
                propertyId: number;
            };
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Indicator;
            property: number;
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Indicator;
            readonly endpoint: number;
            readonly property: number;
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 2;
        };
    };
    supportedPropertyIDs: ((indicatorId: number) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Indicator;
            property: "supportedPropertyIDs";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Indicator;
            readonly endpoint: number;
            readonly property: "supportedPropertyIDs";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    timeout: {
        readonly id: {
            commandClass: CommandClasses.Indicator;
            property: "timeout";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Indicator;
            readonly endpoint: number;
            readonly property: "timeout";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Timeout";
            readonly type: "string";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 3;
        };
    };
    identify: {
        readonly id: {
            commandClass: CommandClasses.Indicator;
            property: "identify";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Indicator;
            readonly endpoint: number;
            readonly property: "identify";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Identify";
            readonly states: {
                readonly true: "Identify";
            };
            readonly readable: false;
            readonly type: "boolean";
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 3;
        };
    };
    valueV1: {
        readonly id: {
            commandClass: CommandClasses.Indicator;
            property: "value";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Indicator;
            readonly endpoint: number;
            readonly property: "value";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Indicator value";
            readonly ccSpecific: {
                readonly indicatorId: 0;
            };
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    supportedIndicatorIds: {
        readonly id: {
            commandClass: CommandClasses.Indicator;
            property: "supportedIndicatorIds";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Indicator;
            readonly endpoint: number;
            readonly property: "supportedIndicatorIds";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "IndicatorCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum IndicatorCommand {
    // (undocumented)
    DescriptionGet = 6,
    // (undocumented)
    DescriptionReport = 7,
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1,
    // (undocumented)
    SupportedGet = 4,
    // (undocumented)
    SupportedReport = 5
}

// Warning: (ae-missing-release-tag) "IndicatorMetadata" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type IndicatorMetadata = ValueMetadata_2 & {
    ccSpecific: {
        indicatorId: number;
        propertyId?: number;
    };
};

// Warning: (ae-missing-release-tag) "IndicatorObject" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IndicatorObject {
    // (undocumented)
    indicatorId: number;
    // (undocumented)
    propertyId: number;
    // (undocumented)
    value: number | boolean;
}

// Warning: (ae-missing-release-tag) "IndicatorTimeout" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export interface IndicatorTimeout {
    hours?: number;
    minutes?: number;
    seconds?: number;
}

// Warning: (ae-missing-release-tag) "InterviewContext" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type InterviewContext = CCAPIHost<CCAPINode & GetCCs & SupportsCC_2 & ControlsCC_2 & QuerySecurityClasses_2 & SetSecurityClass & GetEndpoint_2<EndpointId & GetCCs & SupportsCC_2 & ControlsCC_2 & ModifyCCs> & GetAllEndpoints_2<EndpointId & SupportsCC_2 & ControlsCC_2>> & GetInterviewOptions & LookupManufacturer;

// Warning: (ae-missing-release-tag) "InvalidCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class InvalidCC extends CommandClass {
    constructor(options: InvalidCCOptions);
    // (undocumented)
    get ccName(): string;
    // (undocumented)
    readonly reason?: string | ZWaveErrorCodes;
    // (undocumented)
    toLogEntry(_ctx?: GetValueDB): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "InvalidCCOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface InvalidCCOptions extends CommandClassOptions {
    // (undocumented)
    ccName: string;
    // (undocumented)
    reason?: string | ZWaveErrorCodes;
}

// Warning: (ae-missing-release-tag) "IrrigationCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCC extends CommandClass {
    // (undocumented)
    ccCommand: IrrigationCommand;
    static getMaxValveTableSizeCached(ctx: GetValueDB_2, endpoint: EndpointId_2): MaybeNotKnown<number>;
    static getNumValvesCached(ctx: GetValueDB_2, endpoint: EndpointId_2): MaybeNotKnown<number>;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
    static supportsMasterValveCached(ctx: GetValueDB_2, endpoint: EndpointId_2): boolean;
    // (undocumented)
    translateProperty(ctx: GetValueDB_2, property: string | number, propertyKey?: string | number): string;
}

// Warning: (ae-missing-release-tag) "IrrigationCCSystemConfigGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCSystemConfigGet extends IrrigationCC {
}

// Warning: (ae-missing-release-tag) "IrrigationCCSystemConfigReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCSystemConfigReport extends IrrigationCC {
    constructor(options: WithAddress<IrrigationCCSystemConfigReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): IrrigationCCSystemConfigReport;
    // (undocumented)
    readonly highPressureThreshold: number;
    // (undocumented)
    readonly lowPressureThreshold: number;
    // (undocumented)
    readonly masterValveDelay: number;
    // (undocumented)
    readonly moistureSensorPolarity?: IrrigationSensorPolarity;
    // (undocumented)
    readonly rainSensorPolarity?: IrrigationSensorPolarity;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "IrrigationCCSystemConfigReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IrrigationCCSystemConfigReportOptions {
    // (undocumented)
    highPressureThreshold: number;
    // (undocumented)
    lowPressureThreshold: number;
    // (undocumented)
    masterValveDelay: number;
    // (undocumented)
    moistureSensorPolarity?: IrrigationSensorPolarity;
    // (undocumented)
    rainSensorPolarity?: IrrigationSensorPolarity;
}

// Warning: (ae-missing-release-tag) "IrrigationCCSystemConfigSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCSystemConfigSet extends IrrigationCC {
    constructor(options: WithAddress<IrrigationCCSystemConfigSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): IrrigationCCSystemConfigSet;
    // (undocumented)
    highPressureThreshold: number;
    // (undocumented)
    lowPressureThreshold: number;
    // (undocumented)
    masterValveDelay: number;
    // (undocumented)
    moistureSensorPolarity?: IrrigationSensorPolarity;
    // (undocumented)
    rainSensorPolarity?: IrrigationSensorPolarity;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "IrrigationCCSystemConfigSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type IrrigationCCSystemConfigSetOptions = {
    masterValveDelay: number;
    highPressureThreshold: number;
    lowPressureThreshold: number;
    rainSensorPolarity?: IrrigationSensorPolarity;
    moistureSensorPolarity?: IrrigationSensorPolarity;
};

// Warning: (ae-missing-release-tag) "IrrigationCCSystemInfoGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCSystemInfoGet extends IrrigationCC {
}

// Warning: (ae-missing-release-tag) "IrrigationCCSystemInfoReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCSystemInfoReport extends IrrigationCC {
    constructor(options: WithAddress<IrrigationCCSystemInfoReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): IrrigationCCSystemInfoReport;
    // (undocumented)
    readonly maxValveTableSize: number;
    // (undocumented)
    readonly numValves: number;
    // (undocumented)
    readonly numValveTables: number;
    // (undocumented)
    readonly supportsMasterValve: boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "IrrigationCCSystemInfoReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IrrigationCCSystemInfoReportOptions {
    // (undocumented)
    maxValveTableSize: number;
    // (undocumented)
    numValves: number;
    // (undocumented)
    numValveTables: number;
    // (undocumented)
    supportsMasterValve: boolean;
}

// Warning: (ae-missing-release-tag) "IrrigationCCSystemShutoff" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCSystemShutoff extends IrrigationCC {
    constructor(options: WithAddress<IrrigationCCSystemShutoffOptions>);
    // (undocumented)
    duration?: number;
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): IrrigationCCSystemShutoff;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "IrrigationCCSystemShutoffOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IrrigationCCSystemShutoffOptions {
    duration?: number;
}

// Warning: (ae-missing-release-tag) "IrrigationCCSystemStatusGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCSystemStatusGet extends IrrigationCC {
}

// Warning: (ae-missing-release-tag) "IrrigationCCSystemStatusReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCSystemStatusReport extends IrrigationCC {
    constructor(options: WithAddress<IrrigationCCSystemStatusReportOptions>);
    // (undocumented)
    errorEmergencyShutdown: boolean;
    // (undocumented)
    errorHighPressure: boolean;
    // (undocumented)
    errorLowPressure: boolean;
    // (undocumented)
    errorNotProgrammed: boolean;
    // (undocumented)
    errorValve: boolean;
    // (undocumented)
    firstOpenZoneId?: number;
    // (undocumented)
    flow?: number;
    // (undocumented)
    flowSensorActive: boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): IrrigationCCSystemStatusReport;
    // (undocumented)
    masterValveOpen: boolean;
    // (undocumented)
    moistureSensorActive: boolean;
    // (undocumented)
    pressure?: number;
    // (undocumented)
    pressureSensorActive: boolean;
    // (undocumented)
    rainSensorActive: boolean;
    // (undocumented)
    shutoffDuration: number;
    // (undocumented)
    systemVoltage: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "IrrigationCCSystemStatusReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IrrigationCCSystemStatusReportOptions {
    // (undocumented)
    errorEmergencyShutdown: boolean;
    // (undocumented)
    errorHighPressure: boolean;
    // (undocumented)
    errorLowPressure: boolean;
    // (undocumented)
    errorNotProgrammed: boolean;
    // (undocumented)
    errorValve: boolean;
    // (undocumented)
    firstOpenZoneId?: number;
    // (undocumented)
    flow?: number;
    // (undocumented)
    flowSensorActive: boolean;
    // (undocumented)
    masterValveOpen: boolean;
    // (undocumented)
    moistureSensorActive: boolean;
    // (undocumented)
    pressure?: number;
    // (undocumented)
    pressureSensorActive: boolean;
    // (undocumented)
    rainSensorActive: boolean;
    // (undocumented)
    shutoffDuration: number;
    // (undocumented)
    systemVoltage: number;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const IrrigationCCValues: Readonly<{
    valveRunStartStop: ((valveId: ValveId) => {
        readonly meta: {
            readonly label: `${string}: Start/Stop`;
            readonly states: {
                readonly true: "Start";
                readonly false: "Stop";
            };
            readonly type: "boolean";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: ValveId;
            propertyKey: "startStop";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: ValveId;
            readonly propertyKey: "startStop";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    valveRunDuration: ((valveId: ValveId) => {
        readonly meta: {
            readonly label: `${string}: Run duration`;
            readonly min: 1;
            readonly unit: "s";
            readonly max: 65535;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: ValveId;
            propertyKey: "duration";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: ValveId;
            readonly propertyKey: "duration";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    useMoistureSensor: ((valveId: ValveId) => {
        readonly meta: {
            readonly label: `${string}: Use moisture sensor`;
            readonly type: "boolean";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: ValveId;
            propertyKey: "useMoistureSensor";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: ValveId;
            readonly propertyKey: "useMoistureSensor";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    useRainSensor: ((valveId: ValveId) => {
        readonly meta: {
            readonly label: `${string}: Use rain sensor`;
            readonly type: "boolean";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: ValveId;
            propertyKey: "useRainSensor";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: ValveId;
            readonly propertyKey: "useRainSensor";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    errorLowFlow: ((valveId: ValveId) => {
        readonly meta: {
            readonly label: `${string}: Error - Flow below high threshold`;
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: ValveId;
            propertyKey: "errorLowFlow";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: ValveId;
            readonly propertyKey: "errorLowFlow";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    lowFlowThreshold: ((valveId: ValveId) => {
        readonly meta: {
            readonly label: `${string}: Low flow threshold`;
            readonly min: 0;
            readonly unit: "l/h";
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: ValveId;
            propertyKey: "lowFlowThreshold";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: ValveId;
            readonly propertyKey: "lowFlowThreshold";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    errorHighFlow: ((valveId: ValveId) => {
        readonly meta: {
            readonly label: `${string}: Error - Flow above high threshold`;
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: ValveId;
            propertyKey: "errorHighFlow";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: ValveId;
            readonly propertyKey: "errorHighFlow";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    highFlowThreshold: ((valveId: ValveId) => {
        readonly meta: {
            readonly label: `${string}: High flow threshold`;
            readonly min: 0;
            readonly unit: "l/h";
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: ValveId;
            propertyKey: "highFlowThreshold";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: ValveId;
            readonly propertyKey: "highFlowThreshold";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    errorMaximumFlow: ((valveId: ValveId) => {
        readonly meta: {
            readonly label: `${string}: Error - Maximum flow detected`;
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: ValveId;
            propertyKey: "errorMaximumFlow";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: ValveId;
            readonly propertyKey: "errorMaximumFlow";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    maximumFlow: ((valveId: ValveId) => {
        readonly meta: {
            readonly label: `${string}: Maximum flow`;
            readonly min: 0;
            readonly unit: "l/h";
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: ValveId;
            propertyKey: "maximumFlow";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: ValveId;
            readonly propertyKey: "maximumFlow";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    errorLowCurrent: ((valveId: ValveId) => {
        readonly meta: {
            readonly label: `${string}: Error - Current below low threshold`;
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: ValveId;
            propertyKey: "errorLowCurrent";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: ValveId;
            readonly propertyKey: "errorLowCurrent";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    errorHighCurrent: ((valveId: ValveId) => {
        readonly meta: {
            readonly label: `${string}: Error - Current above high threshold`;
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: ValveId;
            propertyKey: "errorHighCurrent";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: ValveId;
            readonly propertyKey: "errorHighCurrent";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    errorShortCircuit: ((valveId: ValveId) => {
        readonly meta: {
            readonly label: `${string}: Error - Short circuit detected`;
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: ValveId;
            propertyKey: "errorShortCircuit";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: ValveId;
            readonly propertyKey: "errorShortCircuit";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    nominalCurrentLowThreshold: ((valveId: ValveId) => {
        readonly meta: {
            readonly label: `${string}: Nominal current - low threshold`;
            readonly min: 0;
            readonly max: 2550;
            readonly unit: "mA";
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: ValveId;
            propertyKey: "nominalCurrentLowThreshold";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: ValveId;
            readonly propertyKey: "nominalCurrentLowThreshold";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    nominalCurrentHighThreshold: ((valveId: ValveId) => {
        readonly meta: {
            readonly label: `${string}: Nominal current - high threshold`;
            readonly min: 0;
            readonly max: 2550;
            readonly unit: "mA";
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: ValveId;
            propertyKey: "nominalCurrentHighThreshold";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: ValveId;
            readonly propertyKey: "nominalCurrentHighThreshold";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    nominalCurrent: ((valveId: ValveId) => {
        readonly meta: {
            readonly label: `${string}: Nominal current`;
            readonly unit: "mA";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: ValveId;
            propertyKey: "nominalCurrent";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: ValveId;
            readonly propertyKey: "nominalCurrent";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    valveConnected: ((valveId: ValveId) => {
        readonly meta: {
            readonly label: `${string}: Connected`;
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: ValveId;
            propertyKey: "valveConnected";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: ValveId;
            readonly propertyKey: "valveConnected";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    shutoffSystem: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "shutoff";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "shutoff";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Shutoff system";
            readonly states: {
                readonly true: "Shutoff";
            };
            readonly readable: false;
            readonly type: "boolean";
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    firstOpenZoneId: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "firstOpenZoneId";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "firstOpenZoneId";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "First open zone valve ID";
            readonly writeable: false;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    masterValveOpen: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "masterValveOpen";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "masterValveOpen";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Master valve is open";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    errorValve: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "errorValve";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "errorValve";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Error: valve reporting error";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    lowPressureThreshold: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "lowPressureThreshold";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "lowPressureThreshold";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Low pressure threshold";
            readonly unit: "kPa";
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    errorLowPressure: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "errorLowPressure";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "errorLowPressure";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Error: low pressure";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    highPressureThreshold: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "highPressureThreshold";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "highPressureThreshold";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "High pressure threshold";
            readonly unit: "kPa";
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    errorHighPressure: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "errorHighPressure";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "errorHighPressure";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Error: high pressure";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    errorEmergencyShutdown: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "errorEmergencyShutdown";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "errorEmergencyShutdown";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Error: emergency shutdown";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    errorNotProgrammed: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "errorNotProgrammed";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "errorNotProgrammed";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Error: device not programmed";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    shutoffDuration: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "shutoffDuration";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "shutoffDuration";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Remaining shutoff duration";
            readonly unit: "hours";
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    pressure: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "pressure";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "pressure";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Pressure";
            readonly unit: "kPa";
            readonly writeable: false;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    flow: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "flow";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "flow";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Flow";
            readonly unit: "l/h";
            readonly writeable: false;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    moistureSensorPolarity: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "moistureSensorPolarity";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "moistureSensorPolarity";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Moisture sensor polarity";
            readonly min: 0;
            readonly max: 1;
            readonly states: {
                [x: number]: string;
            };
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    moistureSensorActive: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "moistureSensorActive";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "moistureSensorActive";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Moisture sensor attached and active";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    rainSensorPolarity: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "rainSensorPolarity";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "rainSensorPolarity";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Rain sensor polarity";
            readonly min: 0;
            readonly max: 1;
            readonly states: {
                [x: number]: string;
            };
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    rainSensorActive: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "rainSensorActive";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "rainSensorActive";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Rain sensor attached and active";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    pressureSensorActive: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "pressureSensorActive";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "pressureSensorActive";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Pressure sensor active";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    flowSensorActive: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "flowSensorActive";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "flowSensorActive";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Flow sensor active";
            readonly writeable: false;
            readonly type: "boolean";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    masterValveDelay: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "masterValveDelay";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "masterValveDelay";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Master valve delay";
            readonly description: "The delay between turning on the master valve and turning on any zone valve";
            readonly unit: "seconds";
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    systemVoltage: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "systemVoltage";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "systemVoltage";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "System voltage";
            readonly unit: "V";
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    maxValveTableSize: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "maxValveTableSize";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "maxValveTableSize";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportsMasterValve: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "supportsMasterValve";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "supportsMasterValve";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    numValveTables: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "numValveTables";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "numValveTables";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    numValves: {
        readonly id: {
            commandClass: CommandClasses.Irrigation;
            property: "numValves";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Irrigation;
            readonly endpoint: number;
            readonly property: "numValves";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "IrrigationCCValveConfigGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCValveConfigGet extends IrrigationCC {
    constructor(options: WithAddress<IrrigationCCValveConfigGetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): IrrigationCCValveConfigGet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    valveId: ValveId;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveConfigGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IrrigationCCValveConfigGetOptions {
    // (undocumented)
    valveId: ValveId;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveConfigReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCValveConfigReport extends IrrigationCC {
    constructor(options: WithAddress<IrrigationCCValveConfigReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): IrrigationCCValveConfigReport;
    // (undocumented)
    highFlowThreshold: number;
    // (undocumented)
    lowFlowThreshold: number;
    // (undocumented)
    maximumFlow: number;
    // (undocumented)
    nominalCurrentHighThreshold: number;
    // (undocumented)
    nominalCurrentLowThreshold: number;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    useMoistureSensor: boolean;
    // (undocumented)
    useRainSensor: boolean;
    // (undocumented)
    valveId: ValveId;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveConfigReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IrrigationCCValveConfigReportOptions {
    // (undocumented)
    highFlowThreshold: number;
    // (undocumented)
    lowFlowThreshold: number;
    // (undocumented)
    maximumFlow: number;
    // (undocumented)
    nominalCurrentHighThreshold: number;
    // (undocumented)
    nominalCurrentLowThreshold: number;
    // (undocumented)
    useMoistureSensor: boolean;
    // (undocumented)
    useRainSensor: boolean;
    // (undocumented)
    valveId: ValveId;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveConfigSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCValveConfigSet extends IrrigationCC {
    constructor(options: WithAddress<IrrigationCCValveConfigSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): IrrigationCCValveConfigSet;
    // (undocumented)
    highFlowThreshold: number;
    // (undocumented)
    lowFlowThreshold: number;
    // (undocumented)
    maximumFlow: number;
    // (undocumented)
    nominalCurrentHighThreshold: number;
    // (undocumented)
    nominalCurrentLowThreshold: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    useMoistureSensor: boolean;
    // (undocumented)
    useRainSensor: boolean;
    // (undocumented)
    valveId: ValveId;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveConfigSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type IrrigationCCValveConfigSetOptions = {
    valveId: ValveId;
    nominalCurrentHighThreshold: number;
    nominalCurrentLowThreshold: number;
    maximumFlow: number;
    highFlowThreshold: number;
    lowFlowThreshold: number;
    useRainSensor: boolean;
    useMoistureSensor: boolean;
};

// Warning: (ae-missing-release-tag) "IrrigationCCValveInfoGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCValveInfoGet extends IrrigationCC {
    constructor(options: WithAddress<IrrigationCCValveInfoGetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): IrrigationCCValveInfoGet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    valveId: ValveId;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveInfoGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IrrigationCCValveInfoGetOptions {
    // (undocumented)
    valveId: ValveId;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveInfoReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCValveInfoReport extends IrrigationCC {
    constructor(options: WithAddress<IrrigationCCValveInfoReportOptions>);
    // (undocumented)
    readonly connected: boolean;
    // (undocumented)
    readonly errorHighCurrent: boolean;
    // (undocumented)
    readonly errorHighFlow?: boolean;
    // (undocumented)
    readonly errorLowCurrent: boolean;
    // (undocumented)
    readonly errorLowFlow?: boolean;
    // (undocumented)
    readonly errorMaximumFlow?: boolean;
    // (undocumented)
    readonly errorShortCircuit: boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): IrrigationCCValveInfoReport;
    // (undocumented)
    readonly nominalCurrent: number;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    readonly valveId: ValveId;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveInfoReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IrrigationCCValveInfoReportOptions {
    // (undocumented)
    connected: boolean;
    // (undocumented)
    errorHighCurrent: boolean;
    // (undocumented)
    errorHighFlow?: boolean;
    // (undocumented)
    errorLowCurrent: boolean;
    // (undocumented)
    errorLowFlow?: boolean;
    // (undocumented)
    errorMaximumFlow?: boolean;
    // (undocumented)
    errorShortCircuit: boolean;
    // (undocumented)
    nominalCurrent: number;
    // (undocumented)
    valveId: ValveId;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveRun" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCValveRun extends IrrigationCC {
    constructor(options: WithAddress<IrrigationCCValveRunOptions>);
    // (undocumented)
    duration: number;
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): IrrigationCCValveRun;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    valveId: ValveId;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveRunOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IrrigationCCValveRunOptions {
    // (undocumented)
    duration: number;
    // (undocumented)
    valveId: ValveId;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveTableGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCValveTableGet extends IrrigationCC {
    constructor(options: WithAddress<IrrigationCCValveTableGetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): IrrigationCCValveTableGet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    tableId: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveTableGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IrrigationCCValveTableGetOptions {
    // (undocumented)
    tableId: number;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveTableReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCValveTableReport extends IrrigationCC {
    constructor(options: WithAddress<IrrigationCCValveTableReportOptions>);
    // (undocumented)
    readonly entries: ValveTableEntry[];
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): IrrigationCCValveTableReport;
    // (undocumented)
    readonly tableId: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveTableReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IrrigationCCValveTableReportOptions {
    // (undocumented)
    entries: ValveTableEntry[];
    // (undocumented)
    tableId: number;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveTableRun" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCValveTableRun extends IrrigationCC {
    constructor(options: WithAddress<IrrigationCCValveTableRunOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): IrrigationCCValveTableRun;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    tableIDs: number[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveTableRunOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IrrigationCCValveTableRunOptions {
    // (undocumented)
    tableIDs: number[];
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveTableSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class IrrigationCCValveTableSet extends IrrigationCC {
    constructor(options: WithAddress<IrrigationCCValveTableSetOptions>);
    // (undocumented)
    entries: ValveTableEntry[];
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): IrrigationCCValveTableSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    tableId: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "IrrigationCCValveTableSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface IrrigationCCValveTableSetOptions {
    // (undocumented)
    entries: ValveTableEntry[];
    // (undocumented)
    tableId: number;
}

// Warning: (ae-missing-release-tag) "IrrigationCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum IrrigationCommand {
    // (undocumented)
    SystemConfigGet = 6,
    // (undocumented)
    SystemConfigReport = 7,
    // (undocumented)
    SystemConfigSet = 5,
    // (undocumented)
    SystemInfoGet = 1,
    // (undocumented)
    SystemInfoReport = 2,
    // (undocumented)
    SystemShutoff = 18,
    // (undocumented)
    SystemStatusGet = 3,
    // (undocumented)
    SystemStatusReport = 4,
    // (undocumented)
    ValveConfigGet = 11,
    // (undocumented)
    ValveConfigReport = 12,
    // (undocumented)
    ValveConfigSet = 10,
    // (undocumented)
    ValveInfoGet = 8,
    // (undocumented)
    ValveInfoReport = 9,
    // (undocumented)
    ValveRun = 13,
    // (undocumented)
    ValveTableGet = 15,
    // (undocumented)
    ValveTableReport = 16,
    // (undocumented)
    ValveTableRun = 17,
    // (undocumented)
    ValveTableSet = 14
}

// Warning: (ae-missing-release-tag) "IrrigationSensorPolarity" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum IrrigationSensorPolarity {
    // (undocumented)
    High = 1,
    // (undocumented)
    Low = 0
}

// 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) "isEncapsulatingCommandClass" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function isEncapsulatingCommandClass(cc: any): cc is CommandClass & EncapsulatingCommandClass;

// 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) "isMultiEncapsulatingCommandClass" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function isMultiEncapsulatingCommandClass(cc: any): cc is CommandClass & MultiEncapsulatingCommandClass;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "isTransportServiceEncapsulation" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function isTransportServiceEncapsulation(command: CommandClass): command is TransportServiceCCFirstSegment | TransportServiceCCSubsequentSegment;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "KEXFailType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum KEXFailType {
    // (undocumented)
    BootstrappingCanceled = 6,// KEX_KEY
    // (undocumented)
    Decrypt = 5,// KEX_SCHEME
    // (undocumented)
    DifferentKey = 10,// KEX_CURVES
    // (undocumented)
    KeyNotGranted = 8,
    // (undocumented)
    NoKeyMatch = 1,// CANCEL
    // (undocumented)
    NoSupportedCurve = 3,// AUTH
    // (undocumented)
    NoSupportedScheme = 2,// GET
    // (undocumented)
    NoVerify = 9,// VERIFY
    // (undocumented)
    WrongSecurityLevel = 7
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "KEXSchemes" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum KEXSchemes {
    // (undocumented)
    KEXScheme1 = 1
}

// Warning: (ae-missing-release-tag) "KeypadMode" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum KeypadMode {
    // (undocumented)
    LockedOut = 3,
    // (undocumented)
    Normal = 0,
    // (undocumented)
    Privacy = 2,
    // (undocumented)
    Vacation = 1
}

// Warning: (ae-missing-release-tag) "LanguageCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class LanguageCC extends CommandClass {
    // (undocumented)
    ccCommand: LanguageCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "LanguageCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class LanguageCCGet extends LanguageCC {
}

// Warning: (ae-missing-release-tag) "LanguageCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class LanguageCCReport extends LanguageCC {
    constructor(options: WithAddress<LanguageCCReportOptions>);
    // (undocumented)
    readonly country: MaybeNotKnown<string>;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): LanguageCCReport;
    // (undocumented)
    readonly language: string;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "LanguageCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface LanguageCCReportOptions {
    // (undocumented)
    country: MaybeNotKnown<string>;
    // (undocumented)
    language: string;
}

// Warning: (ae-missing-release-tag) "LanguageCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class LanguageCCSet extends LanguageCC {
    constructor(options: WithAddress<LanguageCCSetOptions>);
    // (undocumented)
    get country(): MaybeNotKnown<string>;
    set country(value: MaybeNotKnown<string>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): LanguageCCSet;
    // (undocumented)
    get language(): string;
    set language(value: string);
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "LanguageCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface LanguageCCSetOptions {
    // (undocumented)
    country?: string;
    // (undocumented)
    language: string;
}

// Warning: (ae-missing-release-tag) "LanguageCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const LanguageCCValues: Readonly<{
    country: {
        readonly id: {
            commandClass: CommandClasses.Language;
            property: "country";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Language;
            readonly endpoint: number;
            readonly property: "country";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Country code";
            readonly writeable: false;
            readonly type: "string";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    language: {
        readonly id: {
            commandClass: CommandClasses.Language;
            property: "language";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Language;
            readonly endpoint: number;
            readonly property: "language";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Language code";
            readonly writeable: false;
            readonly type: "string";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "LanguageCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum LanguageCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1
}

// Warning: (ae-missing-release-tag) "LevelChangeDirection" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum LevelChangeDirection {
    // (undocumented)
    "down" = 1,
    // (undocumented)
    "up" = 0
}

// Warning: (ae-missing-release-tag) "LocalProtectionState" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum LocalProtectionState {
    // (undocumented)
    NoOperationPossible = 2,
    // (undocumented)
    ProtectedBySequence = 1,
    // (undocumented)
    Unprotected = 0
}

// Warning: (ae-missing-release-tag) "LockCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class LockCC extends CommandClass {
    // (undocumented)
    ccCommand: LockCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "LockCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class LockCCGet extends LockCC {
}

// Warning: (ae-missing-release-tag) "LockCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class LockCCReport extends LockCC {
    constructor(options: WithAddress<LockCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): LockCCReport;
    // (undocumented)
    readonly locked: boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "LockCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface LockCCReportOptions {
    // (undocumented)
    locked: boolean;
}

// Warning: (ae-missing-release-tag) "LockCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class LockCCSet extends LockCC {
    constructor(options: WithAddress<LockCCSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): LockCCSet;
    // (undocumented)
    locked: boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "LockCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface LockCCSetOptions {
    // (undocumented)
    locked: boolean;
}

// Warning: (ae-missing-release-tag) "LockCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const LockCCValues: Readonly<{
    locked: {
        readonly id: {
            commandClass: CommandClasses.Lock;
            property: "locked";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Lock;
            readonly endpoint: number;
            readonly property: "locked";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Locked";
            readonly description: "Whether the lock is locked";
            readonly type: "boolean";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "LockCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum LockCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "manufacturerId" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const manufacturerId: <TTarget extends typeof ManufacturerProprietaryCC>(manufacturerId: number) => TypedClassDecorator_2<TTarget>;

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "manufacturerProprietaryAPI" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const manufacturerProprietaryAPI: <TTarget extends typeof CCAPI>(manufacturerId: number) => TypedClassDecorator_2<TTarget>;

// Warning: (ae-missing-release-tag) "ManufacturerProprietaryCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ManufacturerProprietaryCC extends CommandClass {
    constructor(options: WithAddress<ManufacturerProprietaryCCOptions>);
    // (undocumented)
    ccCommand: undefined;
    // (undocumented)
    createSpecificInstance(): ManufacturerProprietaryCC | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ManufacturerProprietaryCC;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    manufacturerId?: number;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
}

// Warning: (ae-missing-release-tag) "ManufacturerProprietaryCCOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ManufacturerProprietaryCCOptions {
    // (undocumented)
    manufacturerId?: number;
    // (undocumented)
    unspecifiedExpectsResponse?: boolean;
}

// Warning: (ae-missing-release-tag) "ManufacturerSpecificCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ManufacturerSpecificCC extends CommandClass {
    // (undocumented)
    ccCommand: ManufacturerSpecificCommand;
    // (undocumented)
    determineRequiredCCInterviews(): readonly CommandClasses[];
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "ManufacturerSpecificCCDeviceSpecificGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ManufacturerSpecificCCDeviceSpecificGet extends ManufacturerSpecificCC {
    constructor(options: WithAddress<ManufacturerSpecificCCDeviceSpecificGetOptions>);
    // (undocumented)
    deviceIdType: DeviceIdType;
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): ManufacturerSpecificCCDeviceSpecificGet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ManufacturerSpecificCCDeviceSpecificGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ManufacturerSpecificCCDeviceSpecificGetOptions {
    // (undocumented)
    deviceIdType: DeviceIdType;
}

// Warning: (ae-missing-release-tag) "ManufacturerSpecificCCDeviceSpecificReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ManufacturerSpecificCCDeviceSpecificReport extends ManufacturerSpecificCC {
    constructor(options: WithAddress<ManufacturerSpecificCCDeviceSpecificReportOptions>);
    // (undocumented)
    readonly deviceId: string;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ManufacturerSpecificCCDeviceSpecificReport;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    readonly type: DeviceIdType;
}

// Warning: (ae-missing-release-tag) "ManufacturerSpecificCCDeviceSpecificReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ManufacturerSpecificCCDeviceSpecificReportOptions {
    // (undocumented)
    deviceId: string;
    // (undocumented)
    type: DeviceIdType;
}

// Warning: (ae-missing-release-tag) "ManufacturerSpecificCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ManufacturerSpecificCCGet extends ManufacturerSpecificCC {
}

// Warning: (ae-missing-release-tag) "ManufacturerSpecificCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ManufacturerSpecificCCReport extends ManufacturerSpecificCC {
    constructor(options: WithAddress<ManufacturerSpecificCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ManufacturerSpecificCCReport;
    // (undocumented)
    readonly manufacturerId: number;
    // (undocumented)
    readonly productId: number;
    // (undocumented)
    readonly productType: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ManufacturerSpecificCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ManufacturerSpecificCCReportOptions {
    // (undocumented)
    manufacturerId: number;
    // (undocumented)
    productId: number;
    // (undocumented)
    productType: number;
}

// Warning: (ae-missing-release-tag) "ManufacturerSpecificCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const ManufacturerSpecificCCValues: Readonly<{
    deviceId: ((type: DeviceIdType) => {
        readonly meta: {
            readonly label: string;
            readonly writeable: false;
            readonly type: "string";
            readonly readable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Manufacturer Specific"];
            property: "deviceId";
            propertyKey: string;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Manufacturer Specific"];
            readonly endpoint: number;
            readonly property: "deviceId";
            readonly propertyKey: string;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 2;
        };
    };
    productId: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Manufacturer Specific"];
            property: "productId";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Manufacturer Specific"];
            readonly endpoint: number;
            readonly property: "productId";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Product ID";
            readonly writeable: false;
            readonly min: 0;
            readonly max: 65535;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly supportsEndpoints: false;
        };
    };
    productType: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Manufacturer Specific"];
            property: "productType";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Manufacturer Specific"];
            readonly endpoint: number;
            readonly property: "productType";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Product type";
            readonly writeable: false;
            readonly min: 0;
            readonly max: 65535;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly supportsEndpoints: false;
        };
    };
    manufacturerId: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Manufacturer Specific"];
            property: "manufacturerId";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Manufacturer Specific"];
            readonly endpoint: number;
            readonly property: "manufacturerId";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Manufacturer ID";
            readonly writeable: false;
            readonly min: 0;
            readonly max: 65535;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly supportsEndpoints: false;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "ManufacturerSpecificCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ManufacturerSpecificCommand {
    // (undocumented)
    DeviceSpecificGet = 6,
    // (undocumented)
    DeviceSpecificReport = 7,
    // (undocumented)
    Get = 4,
    // (undocumented)
    Report = 5
}

// Warning: (ae-missing-release-tag) "MeterCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MeterCC extends CommandClass {
    // (undocumented)
    ccCommand: MeterCommand;
    static getMeterTypeCached(ctx: GetValueDB_2, endpoint: EndpointId_2): MaybeNotKnown<number>;
    static getSupportedRateTypesCached(ctx: GetValueDB_2, endpoint: EndpointId_2): MaybeNotKnown<RateType[]>;
    static getSupportedScalesCached(ctx: GetValueDB_2, endpoint: EndpointId_2): MaybeNotKnown<number[]>;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
    // (undocumented)
    shouldRefreshValues(this: SinglecastCC_2<this>, ctx: GetValueDB_2 & GetSupportedCCVersion_2 & GetDeviceConfig_2 & GetNode_2<NodeId & GetEndpoint<EndpointId_2 & SupportsCC & ControlsCC>>): boolean;
    static supportsResetCached(ctx: GetValueDB_2, endpoint: EndpointId_2): MaybeNotKnown<boolean>;
    // (undocumented)
    translatePropertyKey(ctx: GetValueDB_2, property: string | number, propertyKey: string | number): string | undefined;
}

// Warning: (ae-missing-release-tag) "MeterCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MeterCCGet extends MeterCC {
    constructor(options: WithAddress_2<MeterCCGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MeterCCGet;
    // (undocumented)
    rateType: RateType | undefined;
    // (undocumented)
    scale: number | undefined;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MeterCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MeterCCGetOptions {
    // (undocumented)
    rateType?: RateType;
    // (undocumented)
    scale?: number;
}

// Warning: (ae-missing-release-tag) "MeterCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MeterCCReport extends MeterCC {
    constructor(options: WithAddress_2<MeterCCReportOptions>);
    // (undocumented)
    deltaTime: MaybeUnknown_2<number>;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MeterCCReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    previousValue: MaybeNotKnown<number>;
    // (undocumented)
    rateType: RateType;
    // (undocumented)
    scale: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    type: number;
    // (undocumented)
    value: number;
}

// Warning: (ae-missing-release-tag) "MeterCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MeterCCReportOptions {
    // (undocumented)
    deltaTime?: MaybeUnknown_2<number>;
    // (undocumented)
    previousValue?: MaybeNotKnown<number>;
    // (undocumented)
    rateType?: RateType;
    // (undocumented)
    scale: number;
    // (undocumented)
    type: number;
    // (undocumented)
    value: number;
}

// Warning: (ae-missing-release-tag) "MeterCCReset" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MeterCCReset extends MeterCC {
    constructor(options: WithAddress_2<MeterCCResetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MeterCCReset;
    // (undocumented)
    rateType: RateType | undefined;
    // (undocumented)
    scale: number | undefined;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    targetValue: number | undefined;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    type: number | undefined;
}

// Warning: (ae-missing-release-tag) "MeterCCResetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type MeterCCResetOptions = AllOrNone<{
    type: number;
    scale: number;
    rateType: RateType;
    targetValue: number;
}>;

// Warning: (ae-missing-release-tag) "MeterCCSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MeterCCSupportedGet extends MeterCC {
}

// Warning: (ae-missing-release-tag) "MeterCCSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MeterCCSupportedReport extends MeterCC {
    constructor(options: WithAddress_2<MeterCCSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MeterCCSupportedReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly supportedRateTypes: readonly RateType[];
    // (undocumented)
    readonly supportedScales: readonly number[];
    // (undocumented)
    readonly supportsReset: boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    readonly type: number;
}

// Warning: (ae-missing-release-tag) "MeterCCSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MeterCCSupportedReportOptions {
    // (undocumented)
    supportedRateTypes: readonly RateType[];
    // (undocumented)
    supportedScales: readonly number[];
    // (undocumented)
    supportsReset: boolean;
    // (undocumented)
    type: number;
}

// Warning: (ae-missing-release-tag) "MeterCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const MeterCCValues: Readonly<{
    value: ((meterType: number, rateType: RateType, scale: number) => {
        readonly meta: {
            readonly ccSpecific: {
                readonly meterType: number;
                readonly rateType: RateType;
                readonly scale: number;
            };
            readonly writeable: false;
            readonly type: "number";
            readonly readable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Meter;
            property: "value";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Meter;
            readonly endpoint: number;
            readonly property: "value";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    resetSingle: ((meterType: number, rateType: RateType, scale: number) => {
        readonly meta: {
            readonly label: `Reset (${string})` | `Reset (Consumption, ${string})` | `Reset (Production, ${string})`;
            readonly states: {
                readonly true: "Reset";
            };
            readonly ccSpecific: {
                readonly meterType: number;
                readonly rateType: RateType;
                readonly scale: number;
            };
            readonly readable: false;
            readonly type: "boolean";
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Meter;
            property: "reset";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Meter;
            readonly endpoint: number;
            readonly property: "reset";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    resetAll: {
        readonly id: {
            commandClass: CommandClasses.Meter;
            property: "reset";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Meter;
            readonly endpoint: number;
            readonly property: "reset";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly label: "Reset accumulated values";
            readonly states: {
                readonly true: "Reset";
            };
            readonly readable: false;
            readonly type: "boolean";
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    supportedRateTypes: {
        readonly id: {
            commandClass: CommandClasses.Meter;
            property: "supportedRateTypes";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Meter;
            readonly endpoint: number;
            readonly property: "supportedRateTypes";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportedScales: {
        readonly id: {
            commandClass: CommandClasses.Meter;
            property: "supportedScales";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Meter;
            readonly endpoint: number;
            readonly property: "supportedScales";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportsReset: {
        readonly id: {
            commandClass: CommandClasses.Meter;
            property: "supportsReset";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Meter;
            readonly endpoint: number;
            readonly property: "supportsReset";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    type: {
        readonly id: {
            commandClass: CommandClasses.Meter;
            property: "type";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Meter;
            readonly endpoint: number;
            readonly property: "type";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "MeterCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum MeterCommand {
    // (undocumented)
    Get = 1,
    // (undocumented)
    Report = 2,
    // (undocumented)
    Reset = 5,
    // (undocumented)
    SupportedGet = 3,
    // (undocumented)
    SupportedReport = 4
}

// Warning: (ae-missing-release-tag) "MeterMetadata" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type MeterMetadata = ValueMetadata_2 & {
    ccSpecific: {
        meterType: number;
        rateType?: RateType;
        scale?: number;
    };
};

// Warning: (ae-missing-release-tag) "MeterReading" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MeterReading {
    // (undocumented)
    deltaTime: MaybeUnknown<number>;
    // (undocumented)
    previousValue: MaybeNotKnown<number>;
    // (undocumented)
    rateType: RateType;
    // (undocumented)
    scale: MeterScale;
    // (undocumented)
    type: number;
    // (undocumented)
    value: number;
}

// Warning: (ae-missing-release-tag) "MGRPExtension" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MGRPExtension extends Security2Extension {
    // Warning: (ae-forgotten-export) The symbol "MGRPExtensionOptions" needs to be exported by the entry point index.d.ts
    // Warning: (ae-forgotten-export) The symbol "Security2ExtensionBaseOptions" needs to be exported by the entry point index.d.ts
    constructor(options: MGRPExtensionOptions & Security2ExtensionBaseOptions);
    // (undocumented)
    static readonly expectedLength = 3;
    // Warning: (ae-forgotten-export) The symbol "Security2ExtensionRaw" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    static from(raw: Security2ExtensionRaw): Security2Extension;
    // (undocumented)
    groupId: number;
    // (undocumented)
    serialize(moreToFollow: boolean): Bytes;
    // (undocumented)
    toLogEntry(): string;
}

// Warning: (ae-missing-release-tag) "MOSExtension" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MOSExtension extends Security2Extension {
    constructor(options?: Security2ExtensionBaseOptions);
    // (undocumented)
    static readonly expectedLength = 2;
}

// Warning: (ae-missing-release-tag) "MPANExtension" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MPANExtension extends Security2Extension {
    // Warning: (ae-forgotten-export) The symbol "MPANExtensionOptions" needs to be exported by the entry point index.d.ts
    constructor(options: MPANExtensionOptions & Security2ExtensionBaseOptions);
    // (undocumented)
    static readonly expectedLength = 19;
    // (undocumented)
    static from(raw: Security2ExtensionRaw): Security2Extension;
    // (undocumented)
    groupId: number;
    // (undocumented)
    innerMPANState: Uint8Array;
    // (undocumented)
    isEncrypted(): boolean;
    // (undocumented)
    serialize(moreToFollow: boolean): Bytes;
    // (undocumented)
    toLogEntry(): string;
}

// Warning: (ae-missing-release-tag) "MulticastContext" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type MulticastContext = {
    isMulticast: true;
    groupId: number;
} | {
    isMulticast: false;
    groupId?: number;
};

// Warning: (ae-missing-release-tag) "MultiChannelAssociationCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelAssociationCC extends CommandClass {
    // (undocumented)
    ccCommand: MultiChannelAssociationCommand;
    // (undocumented)
    determineRequiredCCInterviews(): readonly CommandClasses[];
    static getAllDestinationsCached(ctx: GetValueDB_2, endpoint: EndpointId_2): ReadonlyMap<number, readonly AssociationAddress[]>;
    static getGroupCountCached(ctx: GetValueDB_2, endpoint: EndpointId_2): number;
    static getMaxNodesCached(ctx: GetValueDB_2, endpoint: EndpointId_2, groupId: number): number;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "MultiChannelAssociationCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelAssociationCCGet extends MultiChannelAssociationCC {
    constructor(options: WithAddress<MultiChannelAssociationCCGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultiChannelAssociationCCGet;
    // (undocumented)
    groupId: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultiChannelAssociationCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultiChannelAssociationCCGetOptions {
    // (undocumented)
    groupId: number;
}

// Warning: (ae-missing-release-tag) "MultiChannelAssociationCCRemove" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelAssociationCCRemove extends MultiChannelAssociationCC {
    constructor(options: WithAddress<MultiChannelAssociationCCRemoveOptions>);
    // (undocumented)
    endpoints?: EndpointAddress[];
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultiChannelAssociationCCRemove;
    // (undocumented)
    groupId?: number;
    // (undocumented)
    nodeIds?: number[];
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultiChannelAssociationCCRemoveOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultiChannelAssociationCCRemoveOptions {
    endpoints?: EndpointAddress[];
    groupId?: number;
    nodeIds?: number[];
}

// Warning: (ae-missing-release-tag) "MultiChannelAssociationCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelAssociationCCReport extends MultiChannelAssociationCC {
    constructor(options: WithAddress<MultiChannelAssociationCCReportOptions>);
    // (undocumented)
    endpoints: EndpointAddress[];
    // (undocumented)
    expectMoreMessages(): boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultiChannelAssociationCCReport;
    // (undocumented)
    getPartialCCSessionId(): Record<string, any> | undefined;
    // (undocumented)
    readonly groupId: number;
    // (undocumented)
    maxNodes: number;
    // (undocumented)
    mergePartialCCs(partials: MultiChannelAssociationCCReport[], _ctx: CCParsingContext_2): void;
    // (undocumented)
    nodeIds: number[];
    // (undocumented)
    reportsToFollow: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultiChannelAssociationCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultiChannelAssociationCCReportOptions {
    // (undocumented)
    endpoints: EndpointAddress[];
    // (undocumented)
    groupId: number;
    // (undocumented)
    maxNodes: number;
    // (undocumented)
    nodeIds: number[];
    // (undocumented)
    reportsToFollow: number;
}

// Warning: (ae-missing-release-tag) "MultiChannelAssociationCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelAssociationCCSet extends MultiChannelAssociationCC {
    constructor(options: WithAddress<MultiChannelAssociationCCSetOptions>);
    // (undocumented)
    endpoints: EndpointAddress[];
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultiChannelAssociationCCSet;
    // (undocumented)
    groupId: number;
    // (undocumented)
    nodeIds: number[];
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultiChannelAssociationCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type MultiChannelAssociationCCSetOptions = {
    groupId: number;
} & ({
    nodeIds: number[];
} | {
    endpoints: EndpointAddress[];
} | {
    nodeIds: number[];
    endpoints: EndpointAddress[];
});

// Warning: (ae-missing-release-tag) "MultiChannelAssociationCCSupportedGroupingsGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelAssociationCCSupportedGroupingsGet extends MultiChannelAssociationCC {
}

// Warning: (ae-missing-release-tag) "MultiChannelAssociationCCSupportedGroupingsReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelAssociationCCSupportedGroupingsReport extends MultiChannelAssociationCC {
    constructor(options: WithAddress<MultiChannelAssociationCCSupportedGroupingsReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultiChannelAssociationCCSupportedGroupingsReport;
    // (undocumented)
    readonly groupCount: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultiChannelAssociationCCSupportedGroupingsReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultiChannelAssociationCCSupportedGroupingsReportOptions {
    // (undocumented)
    groupCount: number;
}

// Warning: (ae-missing-release-tag) "MultiChannelAssociationCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const MultiChannelAssociationCCValues: Readonly<{
    endpoints: ((groupId: number) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Multi Channel Association"];
            property: "endpoints";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multi Channel Association"];
            readonly endpoint: number;
            readonly property: "endpoints";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    nodeIds: ((groupId: number) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Multi Channel Association"];
            property: "nodeIds";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multi Channel Association"];
            readonly endpoint: number;
            readonly property: "nodeIds";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    maxNodes: ((groupId: number) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Multi Channel Association"];
            property: "maxNodes";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multi Channel Association"];
            readonly endpoint: number;
            readonly property: "maxNodes";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    groupCount: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Multi Channel Association"];
            property: "groupCount";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multi Channel Association"];
            readonly endpoint: number;
            readonly property: "groupCount";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "MultiChannelAssociationCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum MultiChannelAssociationCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Remove = 4,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1,
    // (undocumented)
    SupportedGroupingsGet = 5,
    // (undocumented)
    SupportedGroupingsReport = 6
}

// Warning: (ae-missing-release-tag) "MultiChannelCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelCC extends CommandClass {
    // (undocumented)
    ccCommand: MultiChannelCommand;
    static encapsulate(cc: CommandClass): MultiChannelCCCommandEncapsulation;
    static encapsulateV1(cc: CommandClass): MultiChannelCCV1CommandEncapsulation;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    static requiresEncapsulation(cc: CommandClass): boolean;
    // (undocumented)
    skipEndpointInterview(): boolean;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCAggregatedMembersGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelCCAggregatedMembersGet extends MultiChannelCC {
    constructor(options: WithAddress<MultiChannelCCAggregatedMembersGetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): MultiChannelCCAggregatedMembersGet;
    // (undocumented)
    requestedEndpoint: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCAggregatedMembersGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultiChannelCCAggregatedMembersGetOptions {
    // (undocumented)
    requestedEndpoint: number;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCAggregatedMembersReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelCCAggregatedMembersReport extends MultiChannelCC {
    constructor(options: WithAddress<MultiChannelCCAggregatedMembersReportOptions>);
    // (undocumented)
    readonly aggregatedEndpointIndex: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultiChannelCCAggregatedMembersReport;
    // (undocumented)
    readonly members: readonly number[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCAggregatedMembersReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultiChannelCCAggregatedMembersReportOptions {
    // (undocumented)
    aggregatedEndpointIndex: number;
    // (undocumented)
    members: number[];
}

// Warning: (ae-missing-release-tag) "MultiChannelCCCapabilityGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelCCCapabilityGet extends MultiChannelCC {
    constructor(options: WithAddress<MultiChannelCCCapabilityGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultiChannelCCCapabilityGet;
    // (undocumented)
    requestedEndpoint: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCCapabilityGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultiChannelCCCapabilityGetOptions {
    // (undocumented)
    requestedEndpoint: number;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCCapabilityReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelCCCapabilityReport extends MultiChannelCC implements ApplicationNodeInformation {
    constructor(options: WithAddress<MultiChannelCCCapabilityReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultiChannelCCCapabilityReport;
    // (undocumented)
    readonly genericDeviceClass: number;
    // (undocumented)
    readonly isDynamic: boolean;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly specificDeviceClass: number;
    // (undocumented)
    readonly supportedCCs: CommandClasses[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    readonly wasRemoved: boolean;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCCapabilityReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultiChannelCCCapabilityReportOptions {
    // (undocumented)
    endpointIndex: number;
    // (undocumented)
    genericDeviceClass: number;
    // (undocumented)
    isDynamic: boolean;
    // (undocumented)
    specificDeviceClass: number;
    // (undocumented)
    supportedCCs: CommandClasses[];
    // (undocumented)
    wasRemoved: boolean;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCCommandEncapsulation" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelCCCommandEncapsulation extends MultiChannelCC {
    constructor(options: WithAddress<MultiChannelCCCommandEncapsulationOptions>);
    // (undocumented)
    protected computeEncapsulationOverhead(): number;
    // Warning: (ae-forgotten-export) The symbol "MultiChannelCCDestination" needs to be exported by the entry point index.d.ts
    destination: MultiChannelCCDestination;
    // (undocumented)
    encapsulated: CommandClass;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultiChannelCCCommandEncapsulation;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCCommandEncapsulationOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultiChannelCCCommandEncapsulationOptions {
    // (undocumented)
    destination: MultiChannelCCDestination;
    // (undocumented)
    encapsulated: CommandClass;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCEndPointFind" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelCCEndPointFind extends MultiChannelCC {
    constructor(options: WithAddress<MultiChannelCCEndPointFindOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultiChannelCCEndPointFind;
    // (undocumented)
    genericClass: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    specificClass: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCEndPointFindOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultiChannelCCEndPointFindOptions {
    // (undocumented)
    genericClass: number;
    // (undocumented)
    specificClass: number;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCEndPointFindReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelCCEndPointFindReport extends MultiChannelCC {
    constructor(options: WithAddress<MultiChannelCCEndPointFindReportOptions>);
    // (undocumented)
    expectMoreMessages(): boolean;
    // (undocumented)
    foundEndpoints: number[];
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultiChannelCCEndPointFindReport;
    // (undocumented)
    genericClass: number;
    // (undocumented)
    getPartialCCSessionId(): Record<string, any> | undefined;
    // (undocumented)
    mergePartialCCs(partials: MultiChannelCCEndPointFindReport[], _ctx: CCParsingContext_2): void;
    // (undocumented)
    reportsToFollow: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    specificClass: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCEndPointFindReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultiChannelCCEndPointFindReportOptions {
    // (undocumented)
    foundEndpoints: number[];
    // (undocumented)
    genericClass: number;
    // (undocumented)
    reportsToFollow: number;
    // (undocumented)
    specificClass: number;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCEndPointGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelCCEndPointGet extends MultiChannelCC {
}

// Warning: (ae-missing-release-tag) "MultiChannelCCEndPointReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelCCEndPointReport extends MultiChannelCC {
    constructor(options: WithAddress<MultiChannelCCEndPointReportOptions>);
    // (undocumented)
    aggregatedCount: MaybeNotKnown<number>;
    // (undocumented)
    countIsDynamic: boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultiChannelCCEndPointReport;
    // (undocumented)
    identicalCapabilities: boolean;
    // (undocumented)
    individualCount: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCEndPointReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultiChannelCCEndPointReportOptions {
    // (undocumented)
    aggregatedCount?: number;
    // (undocumented)
    countIsDynamic: boolean;
    // (undocumented)
    identicalCapabilities: boolean;
    // (undocumented)
    individualCount: number;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCV1CommandEncapsulation" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelCCV1CommandEncapsulation extends MultiChannelCC {
    constructor(options: WithAddress<MultiChannelCCV1CommandEncapsulationOptions>);
    // (undocumented)
    protected computeEncapsulationOverhead(): number;
    // (undocumented)
    encapsulated: CommandClass;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultiChannelCCV1CommandEncapsulation;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCV1CommandEncapsulationOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultiChannelCCV1CommandEncapsulationOptions {
    // (undocumented)
    encapsulated: CommandClass;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCV1Get" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelCCV1Get extends MultiChannelCC {
    constructor(options: WithAddress<MultiChannelCCV1GetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): MultiChannelCCV1Get;
    // (undocumented)
    requestedCC: CommandClasses;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCV1GetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultiChannelCCV1GetOptions {
    // (undocumented)
    requestedCC: CommandClasses;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCV1Report" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiChannelCCV1Report extends MultiChannelCC {
    constructor(options: WithAddress<MultiChannelCCV1ReportOptions>);
    // (undocumented)
    readonly endpointCount: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultiChannelCCV1Report;
    // (undocumented)
    readonly requestedCC: CommandClasses;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCV1ReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultiChannelCCV1ReportOptions {
    // (undocumented)
    endpointCount: number;
    // (undocumented)
    requestedCC: CommandClasses;
}

// Warning: (ae-missing-release-tag) "MultiChannelCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const MultiChannelCCValues: Readonly<{
    aggregatedEndpointMembers: ((endpointIndex: number) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Multi Channel"];
            property: "members";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multi Channel"];
            readonly endpoint: number;
            readonly property: "members";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    endpointDeviceClass: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Multi Channel"];
            property: "deviceClass";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multi Channel"];
            readonly endpoint: number;
            readonly property: "deviceClass";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    endpointCCs: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Multi Channel"];
            property: "commandClasses";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multi Channel"];
            readonly endpoint: number;
            readonly property: "commandClasses";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    endpointsHaveIdenticalCapabilities: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Multi Channel"];
            property: "identicalCapabilities";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multi Channel"];
            readonly endpoint: number;
            readonly property: "identicalCapabilities";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly internal: true;
            readonly supportsEndpoints: false;
        };
    };
    endpointCountIsDynamic: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Multi Channel"];
            property: "countIsDynamic";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multi Channel"];
            readonly endpoint: number;
            readonly property: "countIsDynamic";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly internal: true;
            readonly supportsEndpoints: false;
        };
    };
    aggregatedEndpointCount: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Multi Channel"];
            property: "aggregatedCount";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multi Channel"];
            readonly endpoint: number;
            readonly property: "aggregatedCount";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly internal: true;
            readonly supportsEndpoints: false;
        };
    };
    individualEndpointCount: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Multi Channel"];
            property: "individualCount";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multi Channel"];
            readonly endpoint: number;
            readonly property: "individualCount";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly internal: true;
            readonly supportsEndpoints: false;
        };
    };
    endpointIndizes: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Multi Channel"];
            property: "endpointIndizes";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multi Channel"];
            readonly endpoint: number;
            readonly property: "endpointIndizes";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly internal: true;
            readonly supportsEndpoints: false;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "MultiChannelCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum MultiChannelCommand {
    // (undocumented)
    AggregatedMembersGet = 14,
    // (undocumented)
    AggregatedMembersReport = 15,
    // (undocumented)
    CapabilityGet = 9,
    // (undocumented)
    CapabilityReport = 10,
    // (undocumented)
    CommandEncapsulation = 13,
    // (undocumented)
    CommandEncapsulationV1 = 6,
    // (undocumented)
    EndPointFind = 11,
    // (undocumented)
    EndPointFindReport = 12,
    // (undocumented)
    EndPointGet = 7,
    // (undocumented)
    EndPointReport = 8,
    // (undocumented)
    GetV1 = 4,
    // (undocumented)
    ReportV1 = 5
}

// Warning: (ae-missing-release-tag) "MultiCommandCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiCommandCC extends CommandClass {
    // (undocumented)
    ccCommand: MultiCommandCommand;
    // (undocumented)
    static encapsulate(CCs: CommandClass[]): MultiCommandCCCommandEncapsulation;
    static requiresEncapsulation(cc: CommandClass): boolean;
}

// Warning: (ae-missing-release-tag) "MultiCommandCCCommandEncapsulation" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultiCommandCCCommandEncapsulation extends MultiCommandCC {
    constructor(options: WithAddress<MultiCommandCCCommandEncapsulationOptions>);
    // (undocumented)
    encapsulated: CommandClass[];
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultiCommandCCCommandEncapsulation;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultiCommandCCCommandEncapsulationOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultiCommandCCCommandEncapsulationOptions {
    // (undocumented)
    encapsulated: CommandClass[];
}

// Warning: (ae-missing-release-tag) "MultiCommandCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum MultiCommandCommand {
    // (undocumented)
    CommandEncapsulation = 1
}

// Warning: (ae-missing-release-tag) "MultiEncapsulatingCommandClass" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultiEncapsulatingCommandClass {
    // (undocumented)
    encapsulated: EncapsulatedCommandClass[];
}

// Warning: (ae-missing-release-tag) "MultilevelSensorCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultilevelSensorCC extends CommandClass {
    // (undocumented)
    ccCommand: MultilevelSensorCommand;
    static getSupportedScalesCached(ctx: GetValueDB_2, endpoint: EndpointId_2, sensorType: number): MaybeNotKnown<number[]>;
    static getSupportedSensorTypesCached(ctx: GetValueDB_2, endpoint: EndpointId_2): MaybeNotKnown<number[]>;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
    // (undocumented)
    shouldRefreshValues(this: SinglecastCC_2<this>, ctx: GetValueDB_2 & GetSupportedCCVersion_2 & GetDeviceConfig_2 & GetNode_2<NodeId & GetEndpoint<EndpointId_2 & SupportsCC & ControlsCC>>): boolean;
    // (undocumented)
    translatePropertyKey(ctx: GetValueDB_2, property: string | number, propertyKey: string | number): string | undefined;
}

// Warning: (ae-missing-release-tag) "MultilevelSensorCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultilevelSensorCCGet extends MultilevelSensorCC {
    constructor(options: WithAddress_2<MultilevelSensorCCGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultilevelSensorCCGet;
    // (undocumented)
    scale: number | undefined;
    // (undocumented)
    sensorType: number | undefined;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultilevelSensorCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type MultilevelSensorCCGetOptions = AllOrNone<{
    sensorType: number;
    scale: number;
}>;

// Warning: (ae-missing-release-tag) "MultilevelSensorCCGetSupportedScale" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultilevelSensorCCGetSupportedScale extends MultilevelSensorCC {
    constructor(options: WithAddress_2<MultilevelSensorCCGetSupportedScaleOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultilevelSensorCCGetSupportedScale;
    // (undocumented)
    sensorType: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultilevelSensorCCGetSupportedScaleOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultilevelSensorCCGetSupportedScaleOptions {
    // (undocumented)
    sensorType: number;
}

// Warning: (ae-missing-release-tag) "MultilevelSensorCCGetSupportedSensor" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultilevelSensorCCGetSupportedSensor extends MultilevelSensorCC {
}

// Warning: (ae-missing-release-tag) "MultilevelSensorCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultilevelSensorCCReport extends MultilevelSensorCC {
    constructor(options: WithAddress_2<MultilevelSensorCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultilevelSensorCCReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    scale: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    type: number;
    // (undocumented)
    value: number;
}

// Warning: (ae-missing-release-tag) "MultilevelSensorCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultilevelSensorCCReportOptions {
    // (undocumented)
    scale: number | Scale;
    // (undocumented)
    type: number;
    // (undocumented)
    value: number;
}

// Warning: (ae-missing-release-tag) "MultilevelSensorCCSupportedScaleReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultilevelSensorCCSupportedScaleReport extends MultilevelSensorCC {
    constructor(options: WithAddress_2<MultilevelSensorCCSupportedScaleReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultilevelSensorCCSupportedScaleReport;
    // (undocumented)
    readonly sensorType: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly supportedScales: readonly number[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultilevelSensorCCSupportedScaleReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultilevelSensorCCSupportedScaleReportOptions {
    // (undocumented)
    sensorType: number;
    // (undocumented)
    supportedScales: readonly number[];
}

// Warning: (ae-missing-release-tag) "MultilevelSensorCCSupportedSensorReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultilevelSensorCCSupportedSensorReport extends MultilevelSensorCC {
    constructor(options: WithAddress_2<MultilevelSensorCCSupportedSensorReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultilevelSensorCCSupportedSensorReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    supportedSensorTypes: readonly number[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultilevelSensorCCSupportedSensorReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultilevelSensorCCSupportedSensorReportOptions {
    // (undocumented)
    supportedSensorTypes: readonly number[];
}

// Warning: (ae-missing-release-tag) "MultilevelSensorCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const MultilevelSensorCCValues: Readonly<{
    value: ((sensorTypeName: string) => {
        readonly meta: {
            readonly label: string;
            readonly writeable: false;
            readonly type: "number";
            readonly readable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Multilevel Sensor"];
            property: string;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multilevel Sensor"];
            readonly endpoint: number;
            readonly property: string;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    supportedScales: ((sensorType: number) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Multilevel Sensor"];
            property: "supportedScales";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multilevel Sensor"];
            readonly endpoint: number;
            readonly property: "supportedScales";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportedSensorTypes: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Multilevel Sensor"];
            property: "supportedSensorTypes";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multilevel Sensor"];
            readonly endpoint: number;
            readonly property: "supportedSensorTypes";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "MultilevelSensorCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum MultilevelSensorCommand {
    // (undocumented)
    Get = 4,
    // (undocumented)
    GetSupportedScale = 3,
    // (undocumented)
    GetSupportedSensor = 1,
    // (undocumented)
    Report = 5,
    // (undocumented)
    SupportedScaleReport = 6,
    // (undocumented)
    SupportedSensorReport = 2
}

// Warning: (ae-missing-release-tag) "MultilevelSensorValue" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultilevelSensorValue {
    // (undocumented)
    scale: Scale;
    // (undocumented)
    value: number;
}

// Warning: (ae-missing-release-tag) "MultilevelSensorValueMetadata" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type MultilevelSensorValueMetadata = ValueMetadata_2 & {
    ccSpecific: {
        sensorType: number;
        scale: number;
    };
};

// Warning: (ae-missing-release-tag) "MultilevelSwitchCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultilevelSwitchCC extends CommandClass {
    // (undocumented)
    ccCommand: MultilevelSwitchCommand;
    // (undocumented)
    protected createMetadataForLevelChangeActions(ctx: GetValueDB_2, switchType?: SwitchType): void;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
    // (undocumented)
    setMappedBasicValue(ctx: GetValueDB_2, value: number): boolean;
}

// Warning: (ae-missing-release-tag) "MultilevelSwitchCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultilevelSwitchCCGet extends MultilevelSwitchCC {
}

// Warning: (ae-missing-release-tag) "MultilevelSwitchCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultilevelSwitchCCReport extends MultilevelSwitchCC {
    constructor(options: WithAddress<MultilevelSwitchCCReportOptions>);
    // (undocumented)
    currentValue: MaybeUnknown<number> | undefined;
    // (undocumented)
    duration: Duration | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultilevelSwitchCCReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    targetValue: MaybeUnknown<number> | undefined;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultilevelSwitchCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultilevelSwitchCCReportOptions {
    // (undocumented)
    currentValue?: MaybeUnknown<number>;
    // (undocumented)
    duration?: Duration | string;
    // (undocumented)
    targetValue?: MaybeUnknown<number>;
}

// Warning: (ae-missing-release-tag) "MultilevelSwitchCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultilevelSwitchCCSet extends MultilevelSwitchCC {
    constructor(options: WithAddress<MultilevelSwitchCCSetOptions>);
    // (undocumented)
    duration: Duration | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultilevelSwitchCCSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    targetValue: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultilevelSwitchCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultilevelSwitchCCSetOptions {
    // (undocumented)
    duration?: Duration | string;
    // (undocumented)
    targetValue: number;
}

// Warning: (ae-missing-release-tag) "MultilevelSwitchCCStartLevelChange" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultilevelSwitchCCStartLevelChange extends MultilevelSwitchCC {
    constructor(options: WithAddress<MultilevelSwitchCCStartLevelChangeOptions>);
    // (undocumented)
    direction: keyof typeof LevelChangeDirection;
    // (undocumented)
    duration: Duration | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultilevelSwitchCCStartLevelChange;
    // (undocumented)
    ignoreStartLevel: boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    startLevel: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultilevelSwitchCCStartLevelChangeOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type MultilevelSwitchCCStartLevelChangeOptions = {
    direction: keyof typeof LevelChangeDirection;
} & ({
    ignoreStartLevel: true;
    startLevel?: number;
} | {
    ignoreStartLevel: false;
    startLevel: number;
}) & {
    duration?: Duration | string;
};

// Warning: (ae-missing-release-tag) "MultilevelSwitchCCStopLevelChange" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultilevelSwitchCCStopLevelChange extends MultilevelSwitchCC {
}

// Warning: (ae-missing-release-tag) "MultilevelSwitchCCSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultilevelSwitchCCSupportedGet extends MultilevelSwitchCC {
}

// Warning: (ae-missing-release-tag) "MultilevelSwitchCCSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class MultilevelSwitchCCSupportedReport extends MultilevelSwitchCC {
    constructor(options: WithAddress<MultilevelSwitchCCSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): MultilevelSwitchCCSupportedReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly switchType: SwitchType;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "MultilevelSwitchCCSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface MultilevelSwitchCCSupportedReportOptions {
    // (undocumented)
    switchType: SwitchType;
}

// Warning: (ae-missing-release-tag) "MultilevelSwitchCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const MultilevelSwitchCCValues: Readonly<{
    levelChangeDown: ((switchType: SwitchType) => {
        readonly meta: {
            readonly label: `Perform a level change (${string})`;
            readonly valueChangeOptions: readonly ["transitionDuration"];
            readonly states: {
                readonly true: "Start";
                readonly false: "Stop";
            };
            readonly ccSpecific: {
                readonly switchType: SwitchType;
            };
            readonly readable: false;
            readonly type: "boolean";
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Multilevel Switch"];
            property: string;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multilevel Switch"];
            readonly endpoint: number;
            readonly property: string;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    levelChangeUp: ((switchType: SwitchType) => {
        readonly meta: {
            readonly label: `Perform a level change (${string})`;
            readonly valueChangeOptions: readonly ["transitionDuration"];
            readonly states: {
                readonly true: "Start";
                readonly false: "Stop";
            };
            readonly ccSpecific: {
                readonly switchType: SwitchType;
            };
            readonly readable: false;
            readonly type: "boolean";
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Multilevel Switch"];
            property: string;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multilevel Switch"];
            readonly endpoint: number;
            readonly property: string;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    superviseStartStopLevelChange: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Multilevel Switch"];
            property: "superviseStartStopLevelChange";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multilevel Switch"];
            readonly endpoint: number;
            readonly property: "superviseStartStopLevelChange";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly internal: true;
            readonly supportsEndpoints: false;
        };
    };
    switchType: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Multilevel Switch"];
            property: "switchType";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multilevel Switch"];
            readonly endpoint: number;
            readonly property: "switchType";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    compatEvent: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Multilevel Switch"];
            property: "event";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multilevel Switch"];
            readonly endpoint: number;
            readonly property: "event";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Event value";
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly stateful: false;
            readonly autoCreate: (applHost: GetValueDB_2 & GetDeviceConfig_2, endpoint: EndpointId_2) => boolean;
        };
    };
    restorePrevious: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Multilevel Switch"];
            property: "restorePrevious";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multilevel Switch"];
            readonly endpoint: number;
            readonly property: "restorePrevious";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Restore previous value";
            readonly states: {
                readonly true: "Restore";
            };
            readonly readable: false;
            readonly type: "boolean";
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    duration: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Multilevel Switch"];
            property: "duration";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multilevel Switch"];
            readonly endpoint: number;
            readonly property: "duration";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Remaining duration";
            readonly writeable: false;
            readonly type: "duration";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    targetValue: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Multilevel Switch"];
            property: "targetValue";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multilevel Switch"];
            readonly endpoint: number;
            readonly property: "targetValue";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Target value";
            readonly valueChangeOptions: readonly ["transitionDuration"];
            readonly max: 99;
            readonly min: 0;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    currentValue: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Multilevel Switch"];
            property: "currentValue";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Multilevel Switch"];
            readonly endpoint: number;
            readonly property: "currentValue";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Current value";
            readonly writeable: false;
            readonly max: 99;
            readonly min: 0;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "MultilevelSwitchCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum MultilevelSwitchCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1,
    // (undocumented)
    StartLevelChange = 4,
    // (undocumented)
    StopLevelChange = 5,
    // (undocumented)
    SupportedGet = 6,
    // (undocumented)
    SupportedReport = 7
}

// Warning: (ae-missing-release-tag) "MultilevelSwitchLevelChangeMetadata" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type MultilevelSwitchLevelChangeMetadata = ValueMetadata_2 & {
    ccSpecific: {
        switchType: SwitchType;
    };
};

// Warning: (ae-missing-release-tag) "NetworkTransferStatus" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum NetworkTransferStatus {
    // (undocumented)
    Failed = 0,
    // (undocumented)
    Success = 1,
    // (undocumented)
    UpdateAborted = 3,
    // (undocumented)
    UpdateDisabled = 5,
    // (undocumented)
    UpdateDone = 2,
    // (undocumented)
    UpdateOverflow = 6,
    // (undocumented)
    UpdateWait = 4
}

// Warning: (ae-missing-release-tag) "NodeNamingAndLocationCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class NodeNamingAndLocationCC extends CommandClass {
    // (undocumented)
    ccCommand: NodeNamingAndLocationCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
    // (undocumented)
    skipEndpointInterview(): boolean;
}

// Warning: (ae-missing-release-tag) "NodeNamingAndLocationCCLocationGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class NodeNamingAndLocationCCLocationGet extends NodeNamingAndLocationCC {
}

// Warning: (ae-missing-release-tag) "NodeNamingAndLocationCCLocationReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class NodeNamingAndLocationCCLocationReport extends NodeNamingAndLocationCC {
    constructor(options: WithAddress<NodeNamingAndLocationCCLocationReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): NodeNamingAndLocationCCLocationReport;
    // (undocumented)
    readonly location: string;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "NodeNamingAndLocationCCLocationReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NodeNamingAndLocationCCLocationReportOptions {
    // (undocumented)
    location: string;
}

// Warning: (ae-missing-release-tag) "NodeNamingAndLocationCCLocationSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class NodeNamingAndLocationCCLocationSet extends NodeNamingAndLocationCC {
    constructor(options: WithAddress<NodeNamingAndLocationCCLocationSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): NodeNamingAndLocationCCLocationSet;
    // (undocumented)
    location: string;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "NodeNamingAndLocationCCLocationSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NodeNamingAndLocationCCLocationSetOptions {
    // (undocumented)
    location: string;
}

// Warning: (ae-missing-release-tag) "NodeNamingAndLocationCCNameGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class NodeNamingAndLocationCCNameGet extends NodeNamingAndLocationCC {
}

// Warning: (ae-missing-release-tag) "NodeNamingAndLocationCCNameReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class NodeNamingAndLocationCCNameReport extends NodeNamingAndLocationCC {
    constructor(options: WithAddress<NodeNamingAndLocationCCNameReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): NodeNamingAndLocationCCNameReport;
    // (undocumented)
    readonly name: string;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "NodeNamingAndLocationCCNameReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NodeNamingAndLocationCCNameReportOptions {
    // (undocumented)
    name: string;
}

// Warning: (ae-missing-release-tag) "NodeNamingAndLocationCCNameSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class NodeNamingAndLocationCCNameSet extends NodeNamingAndLocationCC {
    constructor(options: WithAddress<NodeNamingAndLocationCCNameSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): NodeNamingAndLocationCCNameSet;
    // (undocumented)
    name: string;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "NodeNamingAndLocationCCNameSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NodeNamingAndLocationCCNameSetOptions {
    // (undocumented)
    name: string;
}

// Warning: (ae-missing-release-tag) "NodeNamingAndLocationCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const NodeNamingAndLocationCCValues: Readonly<{
    location: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Node Naming and Location"];
            property: "location";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Node Naming and Location"];
            readonly endpoint: number;
            readonly property: "location";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Node location";
            readonly type: "string";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly supportsEndpoints: false;
        };
    };
    name: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Node Naming and Location"];
            property: "name";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Node Naming and Location"];
            readonly endpoint: number;
            readonly property: "name";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Node name";
            readonly type: "string";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly supportsEndpoints: false;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "NodeNamingAndLocationCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum NodeNamingAndLocationCommand {
    // (undocumented)
    LocationGet = 5,
    // (undocumented)
    LocationReport = 6,
    // (undocumented)
    LocationSet = 4,
    // (undocumented)
    NameGet = 2,
    // (undocumented)
    NameReport = 3,
    // (undocumented)
    NameSet = 1
}

// Warning: (ae-missing-release-tag) "NoOperationCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class NoOperationCC extends CommandClass {
    // (undocumented)
    ccCommand: undefined;
}

// Warning: (ae-missing-release-tag) "normalizeCCNameOrId" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function normalizeCCNameOrId(ccNameOrId: number | string): CommandClasses_2 | undefined;

// Warning: (ae-missing-release-tag) "NotificationCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class NotificationCC extends CommandClass {
    // (undocumented)
    ccCommand: NotificationCommand;
    // (undocumented)
    determineRequiredCCInterviews(): readonly CommandClasses[];
    static getNotificationMode(ctx: GetValueDB_2, node: NodeId): MaybeNotKnown<"push" | "pull">;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
    // (undocumented)
    shouldRefreshValues(this: SinglecastCC_2<this>, ctx: GetValueDB_2 & GetSupportedCCVersion_2 & GetDeviceConfig_2 & GetNode_2<NodeId & GetEndpoint<EndpointId_2 & SupportsCC & ControlsCC>>): boolean;
}

// Warning: (ae-missing-release-tag) "NotificationCCEventSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class NotificationCCEventSupportedGet extends NotificationCC {
    constructor(options: WithAddress_2<NotificationCCEventSupportedGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): NotificationCCEventSupportedGet;
    // (undocumented)
    notificationType: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "NotificationCCEventSupportedGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NotificationCCEventSupportedGetOptions {
    // (undocumented)
    notificationType: number;
}

// Warning: (ae-missing-release-tag) "NotificationCCEventSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class NotificationCCEventSupportedReport extends NotificationCC {
    constructor(options: WithAddress_2<NotificationCCEventSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): NotificationCCEventSupportedReport;
    // (undocumented)
    notificationType: number;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    supportedEvents: number[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "NotificationCCEventSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NotificationCCEventSupportedReportOptions {
    // (undocumented)
    notificationType: number;
    // (undocumented)
    supportedEvents: number[];
}

// Warning: (ae-missing-release-tag) "NotificationCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class NotificationCCGet extends NotificationCC {
    constructor(options: WithAddress_2<NotificationCCGetOptions>);
    alarmType: number | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): NotificationCCGet;
    // (undocumented)
    notificationEvent: number | undefined;
    notificationType: number | undefined;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "NotificationCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type NotificationCCGetOptions = {
    alarmType: number;
} | {
    notificationType: number;
    notificationEvent?: number;
};

// Warning: (ae-missing-release-tag) "NotificationCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class NotificationCCReport extends NotificationCC {
    constructor(options: WithAddress_2<NotificationCCReportOptions>);
    // (undocumented)
    alarmLevel: number | undefined;
    // (undocumented)
    alarmType: number | undefined;
    // (undocumented)
    eventParameters: Uint8Array | Duration | Record<string, number> | number | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): NotificationCCReport;
    // (undocumented)
    notificationEvent: number | undefined;
    // (undocumented)
    notificationStatus: boolean | number | undefined;
    // (undocumented)
    notificationType: number | undefined;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    sequenceNumber: number | undefined;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "NotificationCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type NotificationCCReportOptions = {
    alarmType?: number;
    alarmLevel?: number;
    notificationType?: number;
    notificationEvent?: number;
    notificationStatus?: number;
    eventParameters?: Uint8Array;
    sequenceNumber?: number;
};

// Warning: (ae-missing-release-tag) "NotificationCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class NotificationCCSet extends NotificationCC {
    constructor(options: WithAddress_2<NotificationCCSetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): NotificationCCSet;
    // (undocumented)
    notificationStatus: boolean;
    // (undocumented)
    notificationType: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "NotificationCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NotificationCCSetOptions {
    // (undocumented)
    notificationStatus: boolean;
    // (undocumented)
    notificationType: number;
}

// Warning: (ae-missing-release-tag) "NotificationCCSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class NotificationCCSupportedGet extends NotificationCC {
}

// Warning: (ae-missing-release-tag) "NotificationCCSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class NotificationCCSupportedReport extends NotificationCC {
    constructor(options: WithAddress_2<NotificationCCSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): NotificationCCSupportedReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    supportedNotificationTypes: number[];
    // (undocumented)
    supportsV1Alarm: boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "NotificationCCSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface NotificationCCSupportedReportOptions {
    // (undocumented)
    supportedNotificationTypes: number[];
    // (undocumented)
    supportsV1Alarm: boolean;
}

// Warning: (ae-missing-release-tag) "NotificationCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const NotificationCCValues: Readonly<{
    notificationVariable: ((notificationName: string, variableName: string) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Notification;
            property: string;
            propertyKey: string;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Notification;
            readonly endpoint: number;
            readonly property: string;
            readonly propertyKey: string;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    unknownNotificationVariable: ((notificationType: number, notificationName: string) => {
        readonly meta: {
            readonly label: `${string}: Unknown value`;
            readonly ccSpecific: {
                readonly notificationType: number;
            };
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Notification;
            property: string;
            propertyKey: "unknown";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Notification;
            readonly endpoint: number;
            readonly property: string;
            readonly propertyKey: "unknown";
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    unknownNotificationType: ((notificationType: number) => {
        readonly meta: {
            readonly label: `Unknown notification (${string})`;
            readonly ccSpecific: {
                readonly notificationType: number;
            };
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Notification;
            property: string;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Notification;
            readonly endpoint: number;
            readonly property: string;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    supportedNotificationEvents: ((notificationType: number) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Notification;
            property: "supportedNotificationEvents";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Notification;
            readonly endpoint: number;
            readonly property: "supportedNotificationEvents";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly internal: true;
            readonly supportsEndpoints: false;
        };
    };
    doorTiltState: {
        readonly id: {
            commandClass: CommandClasses.Notification;
            property: "Access Control";
            propertyKey: "Door tilt state";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Notification;
            readonly endpoint: number;
            readonly property: "Access Control";
            readonly propertyKey: "Door tilt state";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Door tilt state";
            readonly states: {
                readonly 0: "Window/door is not tilted";
                readonly 1: "Window/door is tilted";
            };
            readonly ccSpecific: {
                readonly notificationType: 6;
            };
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: false;
        };
    };
    doorStateSimple: {
        readonly id: {
            commandClass: CommandClasses.Notification;
            property: "Access Control";
            propertyKey: "Door state (simple)";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Notification;
            readonly endpoint: number;
            readonly property: "Access Control";
            readonly propertyKey: "Door state (simple)";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Door state (simple)";
            readonly states: {
                readonly 22: "Window/door is open";
                readonly 23: "Window/door is closed";
            };
            readonly ccSpecific: {
                readonly notificationType: 6;
            };
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: (ctx: GetValueDB_2, endpoint: EndpointId_2) => boolean;
        };
    };
    alarmLevel: {
        readonly id: {
            commandClass: CommandClasses.Notification;
            property: "alarmLevel";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Notification;
            readonly endpoint: number;
            readonly property: "alarmLevel";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Alarm Level";
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    alarmType: {
        readonly id: {
            commandClass: CommandClasses.Notification;
            property: "alarmType";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Notification;
            readonly endpoint: number;
            readonly property: "alarmType";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Alarm Type";
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    lastRefresh: {
        readonly id: {
            commandClass: CommandClasses.Notification;
            property: "lastRefresh";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Notification;
            readonly endpoint: number;
            readonly property: "lastRefresh";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    notificationMode: {
        readonly id: {
            commandClass: CommandClasses.Notification;
            property: "notificationMode";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Notification;
            readonly endpoint: number;
            readonly property: "notificationMode";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly internal: true;
            readonly supportsEndpoints: false;
        };
    };
    supportedNotificationTypes: {
        readonly id: {
            commandClass: CommandClasses.Notification;
            property: "supportedNotificationTypes";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Notification;
            readonly endpoint: number;
            readonly property: "supportedNotificationTypes";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly internal: true;
            readonly supportsEndpoints: false;
        };
    };
    supportsV1Alarm: {
        readonly id: {
            commandClass: CommandClasses.Notification;
            property: "supportsV1Alarm";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Notification;
            readonly endpoint: number;
            readonly property: "supportsV1Alarm";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly internal: true;
            readonly supportsEndpoints: false;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "NotificationCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum NotificationCommand {
    // (undocumented)
    EventSupportedGet = 1,
    // (undocumented)
    EventSupportedReport = 2,
    // (undocumented)
    Get = 4,
    // (undocumented)
    Report = 5,
    // (undocumented)
    Set = 6,
    // (undocumented)
    SupportedGet = 7,
    // (undocumented)
    SupportedReport = 8
}

// Warning: (ae-missing-release-tag) "NotificationMetadata" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type NotificationMetadata = ValueMetadata_2 & {
    ccSpecific: {
        notificationType: number;
    };
};

// Warning: (ae-missing-release-tag) "OwnMethodsOf" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type OwnMethodsOf<API extends CCAPI> = Omit<OnlyMethods<API>, keyof OnlyMethods<CCAPI>>;

// Warning: (ae-missing-release-tag) "parseWakeUpTime" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function parseWakeUpTime(value: number): WakeUpTime;

// Warning: (ae-missing-release-tag) "PartialCCValuePredicate" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type PartialCCValuePredicate = (properties: ValueIDProperties) => boolean;

// Warning: (ae-missing-release-tag) "PersistValuesContext" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type PersistValuesContext = HostIDs & GetValueDB & GetSupportedCCVersion & GetDeviceConfig & GetNode<NodeId_2 & GetEndpoint_2<EndpointId & SupportsCC_2 & ControlsCC_2>> & LogNode;

// Warning: (ae-missing-release-tag) "PhysicalCCAPI" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export class PhysicalCCAPI extends CCAPI {
    constructor(host: CCAPIHost, endpoint: CCAPIEndpoint);
    // (undocumented)
    protected readonly endpoint: PhysicalCCAPIEndpoint;
}

// Warning: (ae-missing-release-tag) "PhysicalCCAPIEndpoint" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type PhysicalCCAPIEndpoint = CCAPIEndpoint & EndpointId;

// Warning: (ae-missing-release-tag) "POLL_VALUE" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const POLL_VALUE: unique symbol;

// Warning: (ae-missing-release-tag) "PollValueImplementation" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type PollValueImplementation<T = unknown> = (property: ValueIDProperties) => Promise<T | undefined>;

// Warning: (ae-missing-release-tag) "Powerlevel" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum Powerlevel {
    // (undocumented)
    "-1 dBm" = 1,
    // (undocumented)
    "-2 dBm" = 2,
    // (undocumented)
    "-3 dBm" = 3,
    // (undocumented)
    "-4 dBm" = 4,
    // (undocumented)
    "-5 dBm" = 5,
    // (undocumented)
    "-6 dBm" = 6,
    // (undocumented)
    "-7 dBm" = 7,
    // (undocumented)
    "-8 dBm" = 8,
    // (undocumented)
    "-9 dBm" = 9,
    // (undocumented)
    "Normal Power" = 0
}

// Warning: (ae-missing-release-tag) "PowerlevelCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class PowerlevelCC extends CommandClass {
    // (undocumented)
    ccCommand: PowerlevelCommand;
}

// Warning: (ae-missing-release-tag) "PowerlevelCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class PowerlevelCCGet extends PowerlevelCC {
}

// Warning: (ae-missing-release-tag) "PowerlevelCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class PowerlevelCCReport extends PowerlevelCC {
    constructor(options: WithAddress<PowerlevelCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): PowerlevelCCReport;
    // (undocumented)
    readonly powerlevel: Powerlevel;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly timeout?: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "PowerlevelCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type PowerlevelCCReportOptions = {
    powerlevel: typeof Powerlevel["Normal Power"];
    timeout?: undefined;
} | {
    powerlevel: Exclude<Powerlevel, typeof Powerlevel["Normal Power"]>;
    timeout: number;
};

// Warning: (ae-missing-release-tag) "PowerlevelCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class PowerlevelCCSet extends PowerlevelCC {
    constructor(options: WithAddress<PowerlevelCCSetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): PowerlevelCCSet;
    // (undocumented)
    powerlevel: Powerlevel;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    timeout?: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "PowerlevelCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type PowerlevelCCSetOptions = {
    powerlevel: Powerlevel;
    timeout: number;
} | {
    powerlevel: (typeof Powerlevel)["Normal Power"];
    timeout?: undefined;
};

// Warning: (ae-missing-release-tag) "PowerlevelCCTestNodeGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class PowerlevelCCTestNodeGet extends PowerlevelCC {
}

// Warning: (ae-missing-release-tag) "PowerlevelCCTestNodeReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class PowerlevelCCTestNodeReport extends PowerlevelCC {
    constructor(options: WithAddress<PowerlevelCCTestNodeReportOptions>);
    // (undocumented)
    acknowledgedFrames: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): PowerlevelCCTestNodeReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    status: PowerlevelTestStatus;
    // (undocumented)
    testNodeId: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "PowerlevelCCTestNodeReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface PowerlevelCCTestNodeReportOptions {
    // (undocumented)
    acknowledgedFrames: number;
    // (undocumented)
    status: PowerlevelTestStatus;
    // (undocumented)
    testNodeId: number;
}

// Warning: (ae-missing-release-tag) "PowerlevelCCTestNodeSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class PowerlevelCCTestNodeSet extends PowerlevelCC {
    constructor(options: WithAddress<PowerlevelCCTestNodeSetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): PowerlevelCCTestNodeSet;
    // (undocumented)
    powerlevel: Powerlevel;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    testFrameCount: number;
    // (undocumented)
    testNodeId: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "PowerlevelCCTestNodeSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface PowerlevelCCTestNodeSetOptions {
    // (undocumented)
    powerlevel: Powerlevel;
    // (undocumented)
    testFrameCount: number;
    // (undocumented)
    testNodeId: number;
}

// Warning: (ae-missing-release-tag) "PowerlevelCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum PowerlevelCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1,
    // (undocumented)
    TestNodeGet = 5,
    // (undocumented)
    TestNodeReport = 6,
    // (undocumented)
    TestNodeSet = 4
}

// Warning: (ae-missing-release-tag) "PowerlevelTestStatus" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum PowerlevelTestStatus {
    // (undocumented)
    "In Progress" = 2,
    // (undocumented)
    Failed = 0,
    // (undocumented)
    Success = 1
}

// Warning: (ae-missing-release-tag) "ProtectionCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ProtectionCC extends CommandClass {
    // (undocumented)
    ccCommand: ProtectionCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "ProtectionCCExclusiveControlGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ProtectionCCExclusiveControlGet extends ProtectionCC {
}

// Warning: (ae-missing-release-tag) "ProtectionCCExclusiveControlReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ProtectionCCExclusiveControlReport extends ProtectionCC {
    constructor(options: WithAddress<ProtectionCCExclusiveControlReportOptions>);
    // (undocumented)
    readonly exclusiveControlNodeId: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ProtectionCCExclusiveControlReport;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ProtectionCCExclusiveControlReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ProtectionCCExclusiveControlReportOptions {
    // (undocumented)
    exclusiveControlNodeId: number;
}

// Warning: (ae-missing-release-tag) "ProtectionCCExclusiveControlSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ProtectionCCExclusiveControlSet extends ProtectionCC {
    constructor(options: WithAddress<ProtectionCCExclusiveControlSetOptions>);
    // (undocumented)
    exclusiveControlNodeId: number;
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): ProtectionCCExclusiveControlSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ProtectionCCExclusiveControlSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ProtectionCCExclusiveControlSetOptions {
    // (undocumented)
    exclusiveControlNodeId: number;
}

// Warning: (ae-missing-release-tag) "ProtectionCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ProtectionCCGet extends ProtectionCC {
}

// Warning: (ae-missing-release-tag) "ProtectionCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ProtectionCCReport extends ProtectionCC {
    constructor(options: WithAddress<ProtectionCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ProtectionCCReport;
    // (undocumented)
    readonly local: LocalProtectionState;
    // (undocumented)
    readonly rf?: RFProtectionState;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ProtectionCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ProtectionCCReportOptions {
    // (undocumented)
    local: LocalProtectionState;
    // (undocumented)
    rf?: RFProtectionState;
}

// Warning: (ae-missing-release-tag) "ProtectionCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ProtectionCCSet extends ProtectionCC {
    constructor(options: WithAddress<ProtectionCCSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): ProtectionCCSet;
    // (undocumented)
    local: LocalProtectionState;
    // (undocumented)
    rf?: RFProtectionState;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ProtectionCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ProtectionCCSetOptions {
    // (undocumented)
    local: LocalProtectionState;
    // (undocumented)
    rf?: RFProtectionState;
}

// Warning: (ae-missing-release-tag) "ProtectionCCSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ProtectionCCSupportedGet extends ProtectionCC {
}

// Warning: (ae-missing-release-tag) "ProtectionCCSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ProtectionCCSupportedReport extends ProtectionCC {
    constructor(options: WithAddress<ProtectionCCSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ProtectionCCSupportedReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    readonly supportedLocalStates: LocalProtectionState[];
    // (undocumented)
    readonly supportedRFStates: RFProtectionState[];
    // (undocumented)
    readonly supportsExclusiveControl: boolean;
    // (undocumented)
    readonly supportsTimeout: boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ProtectionCCSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ProtectionCCSupportedReportOptions {
    // (undocumented)
    supportedLocalStates: LocalProtectionState[];
    // (undocumented)
    supportedRFStates: RFProtectionState[];
    // (undocumented)
    supportsExclusiveControl: boolean;
    // (undocumented)
    supportsTimeout: boolean;
}

// Warning: (ae-missing-release-tag) "ProtectionCCTimeoutGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ProtectionCCTimeoutGet extends ProtectionCC {
}

// Warning: (ae-missing-release-tag) "ProtectionCCTimeoutReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ProtectionCCTimeoutReport extends ProtectionCC {
    constructor(options: WithAddress<ProtectionCCTimeoutReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ProtectionCCTimeoutReport;
    // (undocumented)
    readonly timeout: Timeout;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ProtectionCCTimeoutReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ProtectionCCTimeoutReportOptions {
    // (undocumented)
    timeout: Timeout;
}

// Warning: (ae-missing-release-tag) "ProtectionCCTimeoutSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ProtectionCCTimeoutSet extends ProtectionCC {
    constructor(options: WithAddress<ProtectionCCTimeoutSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): ProtectionCCTimeoutSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    timeout: Timeout;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ProtectionCCTimeoutSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ProtectionCCTimeoutSetOptions {
    // (undocumented)
    timeout: Timeout;
}

// Warning: (ae-missing-release-tag) "ProtectionCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const ProtectionCCValues: Readonly<{
    supportedRFStates: {
        readonly id: {
            commandClass: CommandClasses.Protection;
            property: "supportedRFStates";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Protection;
            readonly endpoint: number;
            readonly property: "supportedRFStates";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportedLocalStates: {
        readonly id: {
            commandClass: CommandClasses.Protection;
            property: "supportedLocalStates";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Protection;
            readonly endpoint: number;
            readonly property: "supportedLocalStates";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportsTimeout: {
        readonly id: {
            commandClass: CommandClasses.Protection;
            property: "supportsTimeout";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Protection;
            readonly endpoint: number;
            readonly property: "supportsTimeout";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportsExclusiveControl: {
        readonly id: {
            commandClass: CommandClasses.Protection;
            property: "supportsExclusiveControl";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Protection;
            readonly endpoint: number;
            readonly property: "supportsExclusiveControl";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    timeout: {
        readonly id: {
            commandClass: CommandClasses.Protection;
            property: "timeout";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Protection;
            readonly endpoint: number;
            readonly property: "timeout";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "RF protection timeout";
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 2;
        };
    };
    rfProtectionState: {
        readonly id: {
            commandClass: CommandClasses.Protection;
            property: "rf";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Protection;
            readonly endpoint: number;
            readonly property: "rf";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "RF protection state";
            readonly states: {
                [x: number]: string;
            };
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 2;
        };
    };
    localProtectionState: {
        readonly id: {
            commandClass: CommandClasses.Protection;
            property: "local";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Protection;
            readonly endpoint: number;
            readonly property: "local";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Local protection state";
            readonly states: {
                [x: number]: string;
            };
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    exclusiveControlNodeId: {
        readonly id: {
            commandClass: CommandClasses.Protection;
            property: "exclusiveControlNodeId";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Protection;
            readonly endpoint: number;
            readonly property: "exclusiveControlNodeId";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly min: 1;
            readonly max: 232;
            readonly label: "Node ID with exclusive control";
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 2;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "ProtectionCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ProtectionCommand {
    // (undocumented)
    ExclusiveControlGet = 7,
    // (undocumented)
    ExclusiveControlReport = 8,
    // (undocumented)
    ExclusiveControlSet = 6,
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1,
    // (undocumented)
    SupportedGet = 4,
    // (undocumented)
    SupportedReport = 5,
    // (undocumented)
    TimeoutGet = 10,
    // (undocumented)
    TimeoutReport = 11,
    // (undocumented)
    TimeoutSet = 9
}

// Warning: (ae-missing-release-tag) "RateType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum RateType {
    // (undocumented)
    Consumed = 1,
    // (undocumented)
    Produced = 2,
    // (undocumented)
    Unspecified = 0
}

// Warning: (ae-missing-release-tag) "RefreshValuesContext" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type RefreshValuesContext = CCAPIHost<CCAPINode & GetEndpoint_2<EndpointId & SupportsCC_2 & ControlsCC_2>>;

// Warning: (ae-missing-release-tag) "removeAssociations" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
function removeAssociations(ctx: CCAPIHost, endpoint: EndpointId_2 & SupportsCC & ControlsCC, group: number, destinations: AssociationAddress[]): Promise<void>;

// Warning: (ae-missing-release-tag) "ReturnWithTXReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ReturnWithTXReport<T> = T extends (...args: any[]) => any ? (...args: Parameters<T>) => WrapWithTXReport<ReturnType<T>> : undefined;

// Warning: (ae-missing-release-tag) "RFProtectionState" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum RFProtectionState {
    // (undocumented)
    NoControl = 1,
    // (undocumented)
    NoResponse = 2,
    // (undocumented)
    Unprotected = 0
}

// Warning: (ae-missing-release-tag) "SceneActivationCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SceneActivationCC extends CommandClass {
    // (undocumented)
    ccCommand: SceneActivationCommand;
}

// Warning: (ae-missing-release-tag) "SceneActivationCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SceneActivationCCSet extends SceneActivationCC {
    constructor(options: WithAddress<SceneActivationCCSetOptions>);
    // (undocumented)
    dimmingDuration: Duration | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): SceneActivationCCSet;
    // (undocumented)
    sceneId: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "SceneActivationCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SceneActivationCCSetOptions {
    // (undocumented)
    dimmingDuration?: Duration | string;
    // (undocumented)
    sceneId: number;
}

// Warning: (ae-missing-release-tag) "SceneActivationCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const SceneActivationCCValues: Readonly<{
    dimmingDuration: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Scene Activation"];
            property: "dimmingDuration";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Scene Activation"];
            readonly endpoint: number;
            readonly property: "dimmingDuration";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Dimming duration";
            readonly type: "duration";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    sceneId: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Scene Activation"];
            property: "sceneId";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Scene Activation"];
            readonly endpoint: number;
            readonly property: "sceneId";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly min: 1;
            readonly label: "Scene ID";
            readonly valueChangeOptions: readonly ["transitionDuration"];
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly stateful: false;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "SceneActivationCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum SceneActivationCommand {
    // (undocumented)
    Set = 1
}

// Warning: (ae-missing-release-tag) "SceneActuatorConfigurationCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SceneActuatorConfigurationCC extends CommandClass {
    // (undocumented)
    ccCommand: SceneActuatorConfigurationCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "SceneActuatorConfigurationCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SceneActuatorConfigurationCCGet extends SceneActuatorConfigurationCC {
    constructor(options: WithAddress<SceneActuatorConfigurationCCGetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): SceneActuatorConfigurationCCGet;
    // (undocumented)
    sceneId: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "SceneActuatorConfigurationCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SceneActuatorConfigurationCCGetOptions {
    // (undocumented)
    sceneId: number;
}

// Warning: (ae-missing-release-tag) "SceneActuatorConfigurationCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SceneActuatorConfigurationCCReport extends SceneActuatorConfigurationCC {
    constructor(options: WithAddress<SceneActuatorConfigurationCCReportOptions>);
    // (undocumented)
    readonly dimmingDuration?: Duration;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): SceneActuatorConfigurationCCReport;
    // (undocumented)
    readonly level?: number;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    readonly sceneId: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "SceneActuatorConfigurationCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SceneActuatorConfigurationCCReportOptions {
    // (undocumented)
    dimmingDuration?: Duration;
    // (undocumented)
    level?: number;
    // (undocumented)
    sceneId: number;
}

// Warning: (ae-missing-release-tag) "SceneActuatorConfigurationCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SceneActuatorConfigurationCCSet extends SceneActuatorConfigurationCC {
    constructor(options: WithAddress<SceneActuatorConfigurationCCSetOptions>);
    // (undocumented)
    dimmingDuration: Duration;
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): SceneActuatorConfigurationCCSet;
    // (undocumented)
    level?: number;
    // (undocumented)
    sceneId: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "SceneActuatorConfigurationCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SceneActuatorConfigurationCCSetOptions {
    // (undocumented)
    dimmingDuration: Duration;
    // (undocumented)
    level?: number;
    // (undocumented)
    sceneId: number;
}

// Warning: (ae-missing-release-tag) "SceneActuatorConfigurationCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const SceneActuatorConfigurationCCValues: Readonly<{
    dimmingDuration: ((sceneId: number) => {
        readonly meta: {
            readonly label: `Dimming duration (${number})`;
            readonly type: "duration";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Scene Actuator Configuration"];
            property: "dimmingDuration";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Scene Actuator Configuration"];
            readonly endpoint: number;
            readonly property: "dimmingDuration";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    level: ((sceneId: number) => {
        readonly meta: {
            readonly label: `Level (${number})`;
            readonly valueChangeOptions: readonly ["transitionDuration"];
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Scene Actuator Configuration"];
            property: "level";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Scene Actuator Configuration"];
            readonly endpoint: number;
            readonly property: "level";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "SceneActuatorConfigurationCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum SceneActuatorConfigurationCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1
}

// Warning: (ae-missing-release-tag) "SceneControllerConfigurationCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SceneControllerConfigurationCC extends CommandClass {
    // (undocumented)
    ccCommand: SceneControllerConfigurationCommand;
    // (undocumented)
    determineRequiredCCInterviews(): readonly CommandClasses[];
    static getGroupCountCached(ctx: GetValueDB_2 & GetDeviceConfig_2, endpoint: EndpointId_2): number;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "SceneControllerConfigurationCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SceneControllerConfigurationCCGet extends SceneControllerConfigurationCC {
    constructor(options: WithAddress<SceneControllerConfigurationCCGetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): SceneControllerConfigurationCCGet;
    // (undocumented)
    groupId: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "SceneControllerConfigurationCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SceneControllerConfigurationCCGetOptions {
    // (undocumented)
    groupId: number;
}

// Warning: (ae-missing-release-tag) "SceneControllerConfigurationCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SceneControllerConfigurationCCReport extends SceneControllerConfigurationCC {
    constructor(options: WithAddress<SceneControllerConfigurationCCReportOptions>);
    // (undocumented)
    readonly dimmingDuration: Duration;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): SceneControllerConfigurationCCReport;
    // (undocumented)
    readonly groupId: number;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    readonly sceneId: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "SceneControllerConfigurationCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SceneControllerConfigurationCCReportOptions {
    // (undocumented)
    dimmingDuration: Duration;
    // (undocumented)
    groupId: number;
    // (undocumented)
    sceneId: number;
}

// Warning: (ae-missing-release-tag) "SceneControllerConfigurationCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SceneControllerConfigurationCCSet extends SceneControllerConfigurationCC {
    constructor(options: WithAddress<SceneControllerConfigurationCCSetOptions>);
    // (undocumented)
    dimmingDuration: Duration;
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): SceneControllerConfigurationCCSet;
    // (undocumented)
    groupId: number;
    // (undocumented)
    sceneId: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "SceneControllerConfigurationCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SceneControllerConfigurationCCSetOptions {
    // (undocumented)
    dimmingDuration?: Duration | string;
    // (undocumented)
    groupId: number;
    // (undocumented)
    sceneId: number;
}

// Warning: (ae-missing-release-tag) "SceneControllerConfigurationCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const SceneControllerConfigurationCCValues: Readonly<{
    dimmingDuration: ((groupId: number) => {
        readonly meta: {
            readonly label: `Dimming duration (${number})`;
            readonly type: "duration";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Scene Controller Configuration"];
            property: "dimmingDuration";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Scene Controller Configuration"];
            readonly endpoint: number;
            readonly property: "dimmingDuration";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    sceneId: ((groupId: number) => {
        readonly meta: {
            readonly label: `Associated Scene ID (${number})`;
            readonly valueChangeOptions: readonly ["transitionDuration"];
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Scene Controller Configuration"];
            property: "sceneId";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Scene Controller Configuration"];
            readonly endpoint: number;
            readonly property: "sceneId";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "SceneControllerConfigurationCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum SceneControllerConfigurationCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScheduleEntryLockCC extends CommandClass {
    // (undocumented)
    ccCommand: ScheduleEntryLockCommand;
    static getNumDailyRepeatingSlotsCached(ctx: GetValueDB, endpoint: EndpointId_2): number;
    static getNumWeekDaySlotsCached(ctx: GetValueDB, endpoint: EndpointId_2): number;
    static getNumYearDaySlotsCached(ctx: GetValueDB, endpoint: EndpointId_2): number;
    // (undocumented)
    static getScheduleCached(ctx: GetValueDB, endpoint: EndpointId_2, scheduleKind: ScheduleEntryLockScheduleKind.WeekDay, userId: number, slotId: number): MaybeNotKnown<ScheduleEntryLockWeekDaySchedule | false>;
    // (undocumented)
    static getScheduleCached(ctx: GetValueDB, endpoint: EndpointId_2, scheduleKind: ScheduleEntryLockScheduleKind.YearDay, userId: number, slotId: number): MaybeNotKnown<ScheduleEntryLockYearDaySchedule | false>;
    // (undocumented)
    static getScheduleCached(ctx: GetValueDB, endpoint: EndpointId_2, scheduleKind: ScheduleEntryLockScheduleKind.DailyRepeating, userId: number, slotId: number): MaybeNotKnown<ScheduleEntryLockDailyRepeatingSchedule | false>;
    // (undocumented)
    static getScheduleCached(ctx: GetValueDB, endpoint: EndpointId_2, scheduleKind: ScheduleEntryLockScheduleKind, userId: number, slotId: number): MaybeNotKnown<ScheduleEntryLockWeekDaySchedule | ScheduleEntryLockYearDaySchedule | ScheduleEntryLockDailyRepeatingSchedule | false>;
    static getUserCodeScheduleEnabledCached(ctx: GetValueDB, endpoint: EndpointId_2, userId: number): boolean;
    static getUserCodeScheduleKindCached(ctx: GetValueDB, endpoint: EndpointId_2, userId: number): MaybeNotKnown<ScheduleEntryLockScheduleKind>;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCDailyRepeatingScheduleGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScheduleEntryLockCCDailyRepeatingScheduleGet extends ScheduleEntryLockCC {
    constructor(options: WithAddress_2<ScheduleEntryLockCCDailyRepeatingScheduleGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ScheduleEntryLockCCDailyRepeatingScheduleGet;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    slotId: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
    // (undocumented)
    userId: number;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCDailyRepeatingScheduleGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ScheduleEntryLockCCDailyRepeatingScheduleGetOptions = ScheduleEntryLockSlotId;

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCDailyRepeatingScheduleReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScheduleEntryLockCCDailyRepeatingScheduleReport extends ScheduleEntryLockCC {
    constructor(options: WithAddress_2<ScheduleEntryLockCCDailyRepeatingScheduleReportOptions>);
    // (undocumented)
    durationHour?: number;
    // (undocumented)
    durationMinute?: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ScheduleEntryLockCCDailyRepeatingScheduleReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    slotId: number;
    // (undocumented)
    startHour?: number;
    // (undocumented)
    startMinute?: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
    // (undocumented)
    userId: number;
    // (undocumented)
    weekdays?: ScheduleEntryLockWeekday[];
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCDailyRepeatingScheduleReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ScheduleEntryLockCCDailyRepeatingScheduleReportOptions = ScheduleEntryLockSlotId & AllOrNone_2<ScheduleEntryLockDailyRepeatingSchedule>;

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCDailyRepeatingScheduleSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScheduleEntryLockCCDailyRepeatingScheduleSet extends ScheduleEntryLockCC {
    constructor(options: WithAddress_2<ScheduleEntryLockCCDailyRepeatingScheduleSetOptions>);
    // (undocumented)
    action: ScheduleEntryLockSetAction;
    // (undocumented)
    durationHour?: number;
    // (undocumented)
    durationMinute?: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ScheduleEntryLockCCDailyRepeatingScheduleSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    slotId: number;
    // (undocumented)
    startHour?: number;
    // (undocumented)
    startMinute?: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
    // (undocumented)
    userId: number;
    // (undocumented)
    weekdays?: ScheduleEntryLockWeekday[];
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCDailyRepeatingScheduleSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ScheduleEntryLockCCDailyRepeatingScheduleSetOptions = ScheduleEntryLockSlotId & ({
    action: ScheduleEntryLockSetAction.Erase;
} | ({
    action: ScheduleEntryLockSetAction.Set;
} & ScheduleEntryLockDailyRepeatingSchedule));

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCEnableAllSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScheduleEntryLockCCEnableAllSet extends ScheduleEntryLockCC {
    constructor(options: WithAddress_2<ScheduleEntryLockCCEnableAllSetOptions>);
    // (undocumented)
    enabled: boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ScheduleEntryLockCCEnableAllSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCEnableAllSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ScheduleEntryLockCCEnableAllSetOptions {
    // (undocumented)
    enabled: boolean;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCEnableSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScheduleEntryLockCCEnableSet extends ScheduleEntryLockCC {
    constructor(options: WithAddress_2<ScheduleEntryLockCCEnableSetOptions>);
    // (undocumented)
    enabled: boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ScheduleEntryLockCCEnableSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
    // (undocumented)
    userId: number;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCEnableSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ScheduleEntryLockCCEnableSetOptions {
    // (undocumented)
    enabled: boolean;
    // (undocumented)
    userId: number;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScheduleEntryLockCCSupportedGet extends ScheduleEntryLockCC {
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScheduleEntryLockCCSupportedReport extends ScheduleEntryLockCC {
    constructor(options: WithAddress_2<ScheduleEntryLockCCSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ScheduleEntryLockCCSupportedReport;
    // (undocumented)
    numDailyRepeatingSlots: number | undefined;
    // (undocumented)
    numWeekDaySlots: number;
    // (undocumented)
    numYearDaySlots: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ScheduleEntryLockCCSupportedReportOptions {
    // (undocumented)
    numDailyRepeatingSlots?: number;
    // (undocumented)
    numWeekDaySlots: number;
    // (undocumented)
    numYearDaySlots: number;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCTimeOffsetGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScheduleEntryLockCCTimeOffsetGet extends ScheduleEntryLockCC {
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCTimeOffsetReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScheduleEntryLockCCTimeOffsetReport extends ScheduleEntryLockCC {
    constructor(options: WithAddress_2<ScheduleEntryLockCCTimeOffsetReportOptions>);
    // (undocumented)
    dstOffset: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ScheduleEntryLockCCTimeOffsetReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    standardOffset: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCTimeOffsetReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ScheduleEntryLockCCTimeOffsetReportOptions {
    // (undocumented)
    dstOffset: number;
    // (undocumented)
    standardOffset: number;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCTimeOffsetSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScheduleEntryLockCCTimeOffsetSet extends ScheduleEntryLockCC {
    constructor(options: WithAddress_2<ScheduleEntryLockCCTimeOffsetSetOptions>);
    // (undocumented)
    dstOffset: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ScheduleEntryLockCCTimeOffsetSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    standardOffset: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCTimeOffsetSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ScheduleEntryLockCCTimeOffsetSetOptions {
    // (undocumented)
    dstOffset: number;
    // (undocumented)
    standardOffset: number;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const ScheduleEntryLockCCValues: Readonly<{
    schedule: ((scheduleKind: ScheduleEntryLockScheduleKind, userId: number, slotId: number) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Schedule Entry Lock"];
            property: "schedule";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Schedule Entry Lock"];
            readonly endpoint: number;
            readonly property: "schedule";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    scheduleKind: ((userId: number) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Schedule Entry Lock"];
            property: "scheduleKind";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Schedule Entry Lock"];
            readonly endpoint: number;
            readonly property: "scheduleKind";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    userEnabled: ((userId: number) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Schedule Entry Lock"];
            property: "userEnabled";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Schedule Entry Lock"];
            readonly endpoint: number;
            readonly property: "userEnabled";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    numDailyRepeatingSlots: {
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Schedule Entry Lock"];
            property: "numDailyRepeatingSlots";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Schedule Entry Lock"];
            readonly endpoint: number;
            readonly property: "numDailyRepeatingSlots";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    numYearDaySlots: {
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Schedule Entry Lock"];
            property: "numYearDaySlots";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Schedule Entry Lock"];
            readonly endpoint: number;
            readonly property: "numYearDaySlots";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    numWeekDaySlots: {
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Schedule Entry Lock"];
            property: "numWeekDaySlots";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Schedule Entry Lock"];
            readonly endpoint: number;
            readonly property: "numWeekDaySlots";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCWeekDayScheduleGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScheduleEntryLockCCWeekDayScheduleGet extends ScheduleEntryLockCC {
    constructor(options: WithAddress_2<ScheduleEntryLockCCWeekDayScheduleGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ScheduleEntryLockCCWeekDayScheduleGet;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    slotId: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
    // (undocumented)
    userId: number;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCWeekDayScheduleGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ScheduleEntryLockCCWeekDayScheduleGetOptions = ScheduleEntryLockSlotId;

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCWeekDayScheduleReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScheduleEntryLockCCWeekDayScheduleReport extends ScheduleEntryLockCC {
    constructor(options: WithAddress_2<ScheduleEntryLockCCWeekDayScheduleReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ScheduleEntryLockCCWeekDayScheduleReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    slotId: number;
    // (undocumented)
    startHour?: number;
    // (undocumented)
    startMinute?: number;
    // (undocumented)
    stopHour?: number;
    // (undocumented)
    stopMinute?: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
    // (undocumented)
    userId: number;
    // (undocumented)
    weekday?: ScheduleEntryLockWeekday;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCWeekDayScheduleReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ScheduleEntryLockCCWeekDayScheduleReportOptions = ScheduleEntryLockSlotId & AllOrNone_2<ScheduleEntryLockWeekDaySchedule>;

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCWeekDayScheduleSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScheduleEntryLockCCWeekDayScheduleSet extends ScheduleEntryLockCC {
    constructor(options: WithAddress_2<ScheduleEntryLockCCWeekDayScheduleSetOptions>);
    // (undocumented)
    action: ScheduleEntryLockSetAction;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ScheduleEntryLockCCWeekDayScheduleSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    slotId: number;
    // (undocumented)
    startHour?: number;
    // (undocumented)
    startMinute?: number;
    // (undocumented)
    stopHour?: number;
    // (undocumented)
    stopMinute?: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
    // (undocumented)
    userId: number;
    // (undocumented)
    weekday?: ScheduleEntryLockWeekday;
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCWeekDayScheduleSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ScheduleEntryLockCCWeekDayScheduleSetOptions = ScheduleEntryLockSlotId & ({
    action: ScheduleEntryLockSetAction.Erase;
} | ({
    action: ScheduleEntryLockSetAction.Set;
} & ScheduleEntryLockWeekDaySchedule));

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCYearDayScheduleGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScheduleEntryLockCCYearDayScheduleGet extends ScheduleEntryLockCC {
    constructor(options: WithAddress_2<ScheduleEntryLockCCYearDayScheduleGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ScheduleEntryLockCCYearDayScheduleGet;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    slotId: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
    // (undocumented)
    userId: number;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCYearDayScheduleGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ScheduleEntryLockCCYearDayScheduleGetOptions = ScheduleEntryLockSlotId;

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCYearDayScheduleReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScheduleEntryLockCCYearDayScheduleReport extends ScheduleEntryLockCC {
    constructor(options: WithAddress_2<ScheduleEntryLockCCYearDayScheduleReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ScheduleEntryLockCCYearDayScheduleReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    slotId: number;
    // (undocumented)
    startDay?: number;
    // (undocumented)
    startHour?: number;
    // (undocumented)
    startMinute?: number;
    // (undocumented)
    startMonth?: number;
    // (undocumented)
    startYear?: number;
    // (undocumented)
    stopDay?: number;
    // (undocumented)
    stopHour?: number;
    // (undocumented)
    stopMinute?: number;
    // (undocumented)
    stopMonth?: number;
    // (undocumented)
    stopYear?: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
    // (undocumented)
    userId: number;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCYearDayScheduleReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ScheduleEntryLockCCYearDayScheduleReportOptions = ScheduleEntryLockSlotId & AllOrNone_2<ScheduleEntryLockYearDaySchedule>;

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCYearDayScheduleSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ScheduleEntryLockCCYearDayScheduleSet extends ScheduleEntryLockCC {
    constructor(options: WithAddress_2<ScheduleEntryLockCCYearDayScheduleSetOptions>);
    // (undocumented)
    action: ScheduleEntryLockSetAction;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ScheduleEntryLockCCYearDayScheduleSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes_2;
    // (undocumented)
    slotId: number;
    // (undocumented)
    startDay?: number;
    // (undocumented)
    startHour?: number;
    // (undocumented)
    startMinute?: number;
    // (undocumented)
    startMonth?: number;
    // (undocumented)
    startYear?: number;
    // (undocumented)
    stopDay?: number;
    // (undocumented)
    stopHour?: number;
    // (undocumented)
    stopMinute?: number;
    // (undocumented)
    stopMonth?: number;
    // (undocumented)
    stopYear?: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
    // (undocumented)
    userId: number;
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "ScheduleEntryLockCCYearDayScheduleSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ScheduleEntryLockCCYearDayScheduleSetOptions = ScheduleEntryLockSlotId & ({
    action: ScheduleEntryLockSetAction.Erase;
} | ({
    action: ScheduleEntryLockSetAction.Set;
} & ScheduleEntryLockYearDaySchedule));

// Warning: (ae-missing-release-tag) "ScheduleEntryLockCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ScheduleEntryLockCommand {
    // (undocumented)
    DailyRepeatingScheduleGet = 14,
    // (undocumented)
    DailyRepeatingScheduleReport = 15,
    // (undocumented)
    DailyRepeatingScheduleSet = 16,
    // (undocumented)
    EnableAllSet = 2,
    // (undocumented)
    EnableSet = 1,
    // (undocumented)
    SupportedGet = 9,
    // (undocumented)
    SupportedReport = 10,
    // (undocumented)
    TimeOffsetGet = 11,
    // (undocumented)
    TimeOffsetReport = 12,
    // (undocumented)
    TimeOffsetSet = 13,
    // (undocumented)
    WeekDayScheduleGet = 4,
    // (undocumented)
    WeekDayScheduleReport = 5,
    // (undocumented)
    WeekDayScheduleSet = 3,
    // (undocumented)
    YearDayScheduleGet = 7,
    // (undocumented)
    YearDayScheduleReport = 8,
    // (undocumented)
    YearDayScheduleSet = 6
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockDailyRepeatingSchedule" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ScheduleEntryLockDailyRepeatingSchedule {
    // (undocumented)
    durationHour: number;
    // (undocumented)
    durationMinute: number;
    // (undocumented)
    startHour: number;
    // (undocumented)
    startMinute: number;
    // (undocumented)
    weekdays: ScheduleEntryLockWeekday[];
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockScheduleKind" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ScheduleEntryLockScheduleKind {
    // (undocumented)
    DailyRepeating = 2,
    // (undocumented)
    WeekDay = 0,
    // (undocumented)
    YearDay = 1
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockSetAction" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ScheduleEntryLockSetAction {
    // (undocumented)
    Erase = 0,
    // (undocumented)
    Set = 1
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockSlotId" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ScheduleEntryLockSlotId {
    // (undocumented)
    slotId: number;
    // (undocumented)
    userId: number;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockWeekday" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ScheduleEntryLockWeekday {
    // (undocumented)
    Friday = 5,
    // (undocumented)
    Monday = 1,
    // (undocumented)
    Saturday = 6,
    // (undocumented)
    Sunday = 0,
    // (undocumented)
    Thursday = 4,
    // (undocumented)
    Tuesday = 2,
    // (undocumented)
    Wednesday = 3
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockWeekDaySchedule" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ScheduleEntryLockWeekDaySchedule {
    // (undocumented)
    startHour: number;
    // (undocumented)
    startMinute: number;
    // (undocumented)
    stopHour: number;
    // (undocumented)
    stopMinute: number;
    // (undocumented)
    weekday: ScheduleEntryLockWeekday;
}

// Warning: (ae-missing-release-tag) "ScheduleEntryLockYearDaySchedule" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ScheduleEntryLockYearDaySchedule {
    // (undocumented)
    startDay: number;
    // (undocumented)
    startHour: number;
    // (undocumented)
    startMinute: number;
    // (undocumented)
    startMonth: number;
    // (undocumented)
    startYear: number;
    // (undocumented)
    stopDay: number;
    // (undocumented)
    stopHour: number;
    // (undocumented)
    stopMinute: number;
    // (undocumented)
    stopMonth: number;
    // (undocumented)
    stopYear: number;
}

// Warning: (ae-missing-release-tag) "ScheduleOverrideType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ScheduleOverrideType {
    // (undocumented)
    None = 0,
    // (undocumented)
    Permanent = 2,
    // (undocumented)
    Temporary = 1
}

// Warning: (ae-missing-release-tag) "SchedulePollOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SchedulePollOptions {
    // (undocumented)
    duration?: Duration_2;
    // (undocumented)
    transition?: "fast" | "slow";
}

// Warning: (ae-missing-release-tag) "Security2CC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class Security2CC extends CommandClass {
    // (undocumented)
    ccCommand: Security2Command;
    static encapsulate(cc: CommandClass, ownNodeId: number, securityManagers: SecurityManagers_2, options?: {
        securityClass?: SecurityClass;
        multicastOutOfSync?: boolean;
        multicastGroupId?: number;
        verifyDelivery?: boolean;
    }): Security2CCMessageEncapsulation;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    static requiresEncapsulation(cc: CommandClass): boolean;
}

// Warning: (ae-missing-release-tag) "Security2CCCommandsSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class Security2CCCommandsSupportedGet extends Security2CC {
}

// Warning: (ae-missing-release-tag) "Security2CCCommandsSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class Security2CCCommandsSupportedReport extends Security2CC {
    constructor(options: WithAddress_2<Security2CCCommandsSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): Security2CCCommandsSupportedReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly supportedCCs: CommandClasses_2[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "Security2CCCommandsSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface Security2CCCommandsSupportedReportOptions {
    // (undocumented)
    supportedCCs: CommandClasses_2[];
}

// Warning: (ae-missing-release-tag) "Security2CCKEXFail" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class Security2CCKEXFail extends Security2CC {
    constructor(options: WithAddress_2<Security2CCKEXFailOptions>);
    // (undocumented)
    failType: KEXFailType;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): Security2CCKEXFail;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "Security2CCKEXFailOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface Security2CCKEXFailOptions {
    // (undocumented)
    failType: KEXFailType;
}

// Warning: (ae-missing-release-tag) "Security2CCKEXGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class Security2CCKEXGet extends Security2CC {
}

// Warning: (ae-missing-release-tag) "Security2CCKEXReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class Security2CCKEXReport extends Security2CC {
    constructor(options: WithAddress_2<Security2CCKEXReportOptions>);
    // (undocumented)
    readonly echo: boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): Security2CCKEXReport;
    // (undocumented)
    readonly requestCSA: boolean;
    // (undocumented)
    readonly requestedKeys: readonly SecurityClass[];
    // (undocumented)
    readonly _reserved: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly supportedECDHProfiles: readonly ECDHProfiles[];
    // (undocumented)
    readonly supportedKEXSchemes: readonly KEXSchemes[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "Security2CCKEXReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface Security2CCKEXReportOptions {
    // (undocumented)
    echo: boolean;
    // (undocumented)
    requestCSA: boolean;
    // (undocumented)
    requestedKeys: SecurityClass[];
    // (undocumented)
    _reserved?: number;
    // (undocumented)
    supportedECDHProfiles: ECDHProfiles[];
    // (undocumented)
    supportedKEXSchemes: KEXSchemes[];
}

// Warning: (ae-missing-release-tag) "Security2CCKEXSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class Security2CCKEXSet extends Security2CC {
    constructor(options: WithAddress_2<Security2CCKEXSetOptions>);
    // (undocumented)
    echo: boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): Security2CCKEXSet;
    // (undocumented)
    grantedKeys: SecurityClass[];
    // (undocumented)
    permitCSA: boolean;
    // (undocumented)
    readonly _reserved: number;
    // (undocumented)
    selectedECDHProfile: ECDHProfiles;
    // (undocumented)
    selectedKEXScheme: KEXSchemes;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "Security2CCKEXSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface Security2CCKEXSetOptions {
    // (undocumented)
    echo: boolean;
    // (undocumented)
    grantedKeys: SecurityClass[];
    // (undocumented)
    permitCSA: boolean;
    // (undocumented)
    _reserved?: number;
    // (undocumented)
    selectedECDHProfile: ECDHProfiles;
    // (undocumented)
    selectedKEXScheme: KEXSchemes;
}

// Warning: (ae-missing-release-tag) "Security2CCMessageEncapsulation" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class Security2CCMessageEncapsulation extends Security2CC {
    constructor(options: WithAddress_2<Security2CCMessageEncapsulationOptions>);
    // (undocumented)
    protected computeEncapsulationOverhead(): number;
    // (undocumented)
    encapsulated?: CommandClass;
    // (undocumented)
    extensions: Security2Extension[];
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): Security2CCMessageEncapsulation;
    getMulticastGroupId(): number | undefined;
    getSenderEI(): Uint8Array | undefined;
    // (undocumented)
    hasMOSExtension(): boolean;
    // (undocumented)
    prepareRetransmission(): void;
    // (undocumented)
    readonly securityClass?: SecurityClass;
    // (undocumented)
    sequenceNumber: number | undefined;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
    // (undocumented)
    readonly verifyDelivery: boolean;
}

// Warning: (ae-missing-release-tag) "Security2CCMessageEncapsulationOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface Security2CCMessageEncapsulationOptions {
    // (undocumented)
    encapsulated?: CommandClass;
    // (undocumented)
    extensions?: Security2Extension[];
    securityClass?: SecurityClass;
    // (undocumented)
    sequenceNumber?: number;
    // (undocumented)
    verifyDelivery?: boolean;
}

// Warning: (ae-missing-release-tag) "Security2CCNetworkKeyGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class Security2CCNetworkKeyGet extends Security2CC {
    constructor(options: WithAddress_2<Security2CCNetworkKeyGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): Security2CCNetworkKeyGet;
    // (undocumented)
    requestedKey: SecurityClass;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "Security2CCNetworkKeyGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface Security2CCNetworkKeyGetOptions {
    // (undocumented)
    requestedKey: SecurityClass;
}

// Warning: (ae-missing-release-tag) "Security2CCNetworkKeyReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class Security2CCNetworkKeyReport extends Security2CC {
    constructor(options: WithAddress_2<Security2CCNetworkKeyReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): Security2CCNetworkKeyReport;
    // (undocumented)
    grantedKey: SecurityClass;
    // (undocumented)
    networkKey: Uint8Array;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "Security2CCNetworkKeyReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface Security2CCNetworkKeyReportOptions {
    // (undocumented)
    grantedKey: SecurityClass;
    // (undocumented)
    networkKey: Uint8Array;
}

// Warning: (ae-missing-release-tag) "Security2CCNetworkKeyVerify" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class Security2CCNetworkKeyVerify extends Security2CC {
}

// Warning: (ae-missing-release-tag) "Security2CCNonceGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class Security2CCNonceGet extends Security2CC {
    constructor(options: WithAddress_2<Security2CCNonceGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): Security2CCNonceGet;
    // (undocumented)
    sequenceNumber: number | undefined;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "Security2CCNonceGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface Security2CCNonceGetOptions {
    // (undocumented)
    sequenceNumber?: number;
}

// Warning: (ae-missing-release-tag) "Security2CCNonceReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class Security2CCNonceReport extends Security2CC {
    constructor(options: WithAddress_2<Security2CCNonceReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): Security2CCNonceReport;
    // (undocumented)
    readonly MOS: boolean;
    // (undocumented)
    readonly receiverEI?: Uint8Array;
    // (undocumented)
    sequenceNumber: number | undefined;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly SOS: boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "Security2CCNonceReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type Security2CCNonceReportOptions = {
    sequenceNumber?: number;
} & ({
    MOS: boolean;
    SOS: true;
    receiverEI: Uint8Array;
} | {
    MOS: true;
    SOS: false;
    receiverEI?: undefined;
});

// Warning: (ae-missing-release-tag) "Security2CCPublicKeyReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class Security2CCPublicKeyReport extends Security2CC {
    constructor(options: WithAddress_2<Security2CCPublicKeyReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): Security2CCPublicKeyReport;
    // (undocumented)
    includingNode: boolean;
    // (undocumented)
    publicKey: Uint8Array;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "Security2CCPublicKeyReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface Security2CCPublicKeyReportOptions {
    // (undocumented)
    includingNode: boolean;
    // (undocumented)
    publicKey: Uint8Array;
}

// Warning: (ae-missing-release-tag) "Security2CCTransferEnd" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class Security2CCTransferEnd extends Security2CC {
    constructor(options: WithAddress_2<Security2CCTransferEndOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): Security2CCTransferEnd;
    // (undocumented)
    keyRequestComplete: boolean;
    // (undocumented)
    keyVerified: boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "Security2CCTransferEndOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface Security2CCTransferEndOptions {
    // (undocumented)
    keyRequestComplete: boolean;
    // (undocumented)
    keyVerified: boolean;
}

// Warning: (ae-missing-release-tag) "Security2Command" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum Security2Command {
    // (undocumented)
    CommandsSupportedGet = 13,
    // (undocumented)
    CommandsSupportedReport = 14,
    // (undocumented)
    KEXFail = 7,
    // (undocumented)
    KEXGet = 4,
    // (undocumented)
    KEXReport = 5,
    // (undocumented)
    KEXSet = 6,
    // (undocumented)
    MessageEncapsulation = 3,
    // (undocumented)
    NetworkKeyGet = 9,
    // (undocumented)
    NetworkKeyReport = 10,
    // (undocumented)
    NetworkKeyVerify = 11,
    // (undocumented)
    NonceGet = 1,
    // (undocumented)
    NonceReport = 2,
    // (undocumented)
    PublicKeyReport = 8,
    // (undocumented)
    TransferEnd = 12
}

// Warning: (ae-missing-release-tag) "Security2Extension" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class Security2Extension {
    // Warning: (ae-forgotten-export) The symbol "Security2ExtensionOptions" needs to be exported by the entry point index.d.ts
    constructor(options: Security2ExtensionOptions);
    computeLength(): number;
    // (undocumented)
    critical: boolean;
    static from(raw: Security2ExtensionRaw): Security2Extension;
    static getExtensionLength(data: Uint8Array): {
        expected?: number;
        actual: number;
    };
    // (undocumented)
    isEncrypted(): boolean;
    // (undocumented)
    readonly moreToFollow?: boolean;
    // (undocumented)
    static parse(data: Uint8Array): Security2Extension;
    // (undocumented)
    payload: Uint8Array;
    // (undocumented)
    serialize(moreToFollow: boolean): Bytes;
    // (undocumented)
    toLogEntry(): string;
    // (undocumented)
    type: S2ExtensionType;
}

// Warning: (ae-missing-release-tag) "SecurityCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SecurityCC extends CommandClass {
    // (undocumented)
    ccCommand: SecurityCommand;
    static encapsulate(ownNodeId: number, securityManager: SecurityManager, cc: CommandClass): SecurityCCCommandEncapsulation;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    nodeId: number;
    static requiresEncapsulation(cc: CommandClass): boolean;
}

// Warning: (ae-missing-release-tag) "SecurityCCCommandEncapsulation" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SecurityCCCommandEncapsulation extends SecurityCC {
    constructor(options: WithAddress_2<SecurityCCCommandEncapsulationOptions>);
    // (undocumented)
    protected computeEncapsulationOverhead(): number;
    // (undocumented)
    encapsulated: CommandClass;
    // (undocumented)
    expectMoreMessages(): boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): SecurityCCCommandEncapsulation;
    // (undocumented)
    getPartialCCSessionId(): Record<string, any> | undefined;
    // (undocumented)
    mergePartialCCs(partials: SecurityCCCommandEncapsulation[], ctx: CCParsingContext_2): void;
    // (undocumented)
    nonce: Uint8Array | undefined;
    // (undocumented)
    get nonceId(): number | undefined;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "SecurityCCCommandEncapsulationNonceGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SecurityCCCommandEncapsulationNonceGet extends SecurityCCCommandEncapsulation {
}

// Warning: (ae-missing-release-tag) "SecurityCCCommandEncapsulationOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type SecurityCCCommandEncapsulationOptions = {
    alternativeNetworkKey?: Uint8Array;
} & ({
    encapsulated: CommandClass;
} | {
    decryptedCCBytes: Uint8Array;
    sequenced: boolean;
    secondFrame: boolean;
    sequenceCounter: number;
});

// Warning: (ae-missing-release-tag) "SecurityCCCommandsSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SecurityCCCommandsSupportedGet extends SecurityCC {
}

// Warning: (ae-missing-release-tag) "SecurityCCCommandsSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SecurityCCCommandsSupportedReport extends SecurityCC {
    constructor(options: WithAddress_2<SecurityCCCommandsSupportedReportOptions>);
    // (undocumented)
    controlledCCs: CommandClasses_2[];
    // (undocumented)
    expectMoreMessages(): boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): SecurityCCCommandsSupportedReport;
    // (undocumented)
    getPartialCCSessionId(): Record<string, any> | undefined;
    // (undocumented)
    mergePartialCCs(partials: SecurityCCCommandsSupportedReport[]): void;
    // (undocumented)
    reportsToFollow: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    supportedCCs: CommandClasses_2[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "SecurityCCCommandsSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SecurityCCCommandsSupportedReportOptions {
    // (undocumented)
    controlledCCs: CommandClasses_2[];
    // (undocumented)
    reportsToFollow?: number;
    // (undocumented)
    supportedCCs: CommandClasses_2[];
}

// Warning: (ae-missing-release-tag) "SecurityCCNetworkKeySet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SecurityCCNetworkKeySet extends SecurityCC {
    constructor(options: WithAddress_2<SecurityCCNetworkKeySetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): SecurityCCNetworkKeySet;
    // (undocumented)
    networkKey: Uint8Array;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "SecurityCCNetworkKeySetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SecurityCCNetworkKeySetOptions {
    // (undocumented)
    networkKey: Uint8Array;
}

// Warning: (ae-missing-release-tag) "SecurityCCNetworkKeyVerify" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SecurityCCNetworkKeyVerify extends SecurityCC {
}

// Warning: (ae-missing-release-tag) "SecurityCCNonceGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SecurityCCNonceGet extends SecurityCC {
}

// Warning: (ae-missing-release-tag) "SecurityCCNonceReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SecurityCCNonceReport extends SecurityCC {
    // Warning: (ae-forgotten-export) The symbol "SecurityCCNonceReportOptions" needs to be exported by the entry point index.d.ts
    constructor(options: WithAddress_2<SecurityCCNonceReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): SecurityCCNonceReport;
    // (undocumented)
    nonce: Uint8Array;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "SecurityCCSchemeGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SecurityCCSchemeGet extends SecurityCC {
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "SecurityCCSchemeInherit" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SecurityCCSchemeInherit extends SecurityCC {
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "SecurityCCSchemeReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SecurityCCSchemeReport extends SecurityCC {
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): SecurityCCSchemeReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "SecurityCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum SecurityCommand {
    // (undocumented)
    CommandEncapsulation = 129,
    // (undocumented)
    CommandEncapsulationNonceGet = 193,
    // (undocumented)
    CommandsSupportedGet = 2,
    // (undocumented)
    CommandsSupportedReport = 3,
    // (undocumented)
    NetworkKeySet = 6,
    // (undocumented)
    NetworkKeyVerify = 7,
    // (undocumented)
    NonceGet = 64,
    // (undocumented)
    NonceReport = 128,
    // (undocumented)
    SchemeGet = 4,
    // (undocumented)
    SchemeInherit = 8,
    // (undocumented)
    SchemeReport = 5
}

// Warning: (ae-missing-release-tag) "SET_VALUE" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const SET_VALUE: unique symbol;

// Warning: (ae-missing-release-tag) "SET_VALUE_HOOKS" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const SET_VALUE_HOOKS: unique symbol;

// Warning: (ae-missing-release-tag) "SetbackSpecialState" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type SetbackSpecialState = "Frost Protection" | "Energy Saving" | "Unused";

// Warning: (ae-missing-release-tag) "SetbackState" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type SetbackState = number | SetbackSpecialState;

// Warning: (ae-missing-release-tag) "SetbackType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum SetbackType {
    // (undocumented)
    None = 0,
    // (undocumented)
    Permanent = 2,
    // (undocumented)
    Temporary = 1
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "SetValueAPIOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type SetValueAPIOptions = Partial<ValueChangeOptions> & Pick<SendCommandOptions, "onProgress">;

// Warning: (ae-missing-release-tag) "setValueFailed" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function setValueFailed(result: SetValueResult): result is SetValueResult & {
    status: SetValueStatus.NoDeviceSupport | SetValueStatus.Fail | SetValueStatus.EndpointNotFound | SetValueStatus.NotImplemented | SetValueStatus.InvalidValue;
};

// Warning: (ae-missing-release-tag) "SetValueImplementation" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type SetValueImplementation = (property: ValueIDProperties, value: unknown, options?: SetValueAPIOptions) => Promise<SupervisionResult_2 | undefined>;

// Warning: (ae-missing-release-tag) "SetValueImplementationHooks" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type SetValueImplementationHooks = AllOrNone_2<{
    supervisionDelayedUpdates: boolean;
    supervisionOnSuccess: () => void | Promise<void>;
    supervisionOnFailure: () => void | Promise<void>;
}> & {
    optimisticallyUpdateRelatedValues?: (supervisedAndSuccessful: boolean) => void;
    forceVerifyChanges?: () => boolean;
    verifyChanges?: () => void | Promise<void>;
};

// Warning: (ae-missing-release-tag) "SetValueImplementationHooksFactory" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type SetValueImplementationHooksFactory = (property: ValueIDProperties, value: unknown, options?: SetValueAPIOptions) => SetValueImplementationHooks | undefined;

// Warning: (ae-missing-release-tag) "SetValueResult" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export type SetValueResult = {
    status: SetValueStatus.NoDeviceSupport | SetValueStatus.Fail | SetValueStatus.Success;
    remainingDuration?: undefined;
    message?: undefined;
} | {
    status: SetValueStatus.Working;
    remainingDuration: Duration;
    message?: undefined;
} | {
    status: SetValueStatus.SuccessUnsupervised;
    remainingDuration?: undefined;
    message?: undefined;
} | {
    status: SetValueStatus.EndpointNotFound | SetValueStatus.NotImplemented | SetValueStatus.InvalidValue;
    remainingDuration?: undefined;
    message: string;
};

// Warning: (ae-missing-release-tag) "SetValueStatus" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export enum SetValueStatus {
    EndpointNotFound = 3,
    Fail = 2,
    InvalidValue = 5,
    NoDeviceSupport = 0,
    NotImplemented = 4,
    Success = 255,
    SuccessUnsupervised = 254,
    Working = 1
}

// Warning: (ae-missing-release-tag) "setValueSucceeded" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function setValueSucceeded(result: SetValueResult): result is SetValueResult & {
    status: SetValueStatus.Success | SetValueStatus.Working;
};

// Warning: (ae-missing-release-tag) "setValueWasUnsupervisedOrSucceeded" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export function setValueWasUnsupervisedOrSucceeded(result: SetValueResult): result is SetValueResult & {
    status: SetValueStatus.SuccessUnsupervised | SetValueStatus.Success | SetValueStatus.Working;
};

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "shouldUseSupervision" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const shouldUseSupervision: (target: CommandClass) => boolean;

// Warning: (ae-missing-release-tag) "SoundSwitchCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SoundSwitchCC extends CommandClass {
    // (undocumented)
    ccCommand: SoundSwitchCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCConfigurationGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SoundSwitchCCConfigurationGet extends SoundSwitchCC {
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCConfigurationReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SoundSwitchCCConfigurationReport extends SoundSwitchCC {
    constructor(options: WithAddress<SoundSwitchCCConfigurationReportOptions>);
    // (undocumented)
    defaultToneId: number;
    // (undocumented)
    defaultVolume: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): SoundSwitchCCConfigurationReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCConfigurationReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SoundSwitchCCConfigurationReportOptions {
    // (undocumented)
    defaultToneId: number;
    // (undocumented)
    defaultVolume: number;
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCConfigurationSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SoundSwitchCCConfigurationSet extends SoundSwitchCC {
    constructor(options: WithAddress<SoundSwitchCCConfigurationSetOptions>);
    // (undocumented)
    defaultToneId: number;
    // (undocumented)
    defaultVolume: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): SoundSwitchCCConfigurationSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCConfigurationSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SoundSwitchCCConfigurationSetOptions {
    // (undocumented)
    defaultToneId: number;
    // (undocumented)
    defaultVolume: number;
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCToneInfoGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SoundSwitchCCToneInfoGet extends SoundSwitchCC {
    constructor(options: WithAddress<SoundSwitchCCToneInfoGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): SoundSwitchCCToneInfoGet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    toneId: number;
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCToneInfoGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SoundSwitchCCToneInfoGetOptions {
    // (undocumented)
    toneId: number;
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCToneInfoReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SoundSwitchCCToneInfoReport extends SoundSwitchCC {
    constructor(options: WithAddress<SoundSwitchCCToneInfoReportOptions>);
    // (undocumented)
    readonly duration: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): SoundSwitchCCToneInfoReport;
    // (undocumented)
    readonly name: string;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    readonly toneId: number;
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCToneInfoReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SoundSwitchCCToneInfoReportOptions {
    // (undocumented)
    duration: number;
    // (undocumented)
    name: string;
    // (undocumented)
    toneId: number;
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCTonePlayGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SoundSwitchCCTonePlayGet extends SoundSwitchCC {
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCTonePlayReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SoundSwitchCCTonePlayReport extends SoundSwitchCC {
    constructor(options: WithAddress<SoundSwitchCCTonePlayReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): SoundSwitchCCTonePlayReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    readonly toneId: ToneId | number;
    // (undocumented)
    volume?: number;
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCTonePlayReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SoundSwitchCCTonePlayReportOptions {
    // (undocumented)
    toneId: ToneId | number;
    // (undocumented)
    volume?: number;
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCTonePlaySet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SoundSwitchCCTonePlaySet extends SoundSwitchCC {
    constructor(options: WithAddress<SoundSwitchCCTonePlaySetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): SoundSwitchCCTonePlaySet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    toneId: ToneId | number;
    // (undocumented)
    volume?: number;
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCTonePlaySetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SoundSwitchCCTonePlaySetOptions {
    // (undocumented)
    toneId: ToneId | number;
    // (undocumented)
    volume?: number;
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCTonesNumberGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SoundSwitchCCTonesNumberGet extends SoundSwitchCC {
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCTonesNumberReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SoundSwitchCCTonesNumberReport extends SoundSwitchCC {
    constructor(options: WithAddress<SoundSwitchCCTonesNumberReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): SoundSwitchCCTonesNumberReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    toneCount: number;
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCTonesNumberReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SoundSwitchCCTonesNumberReportOptions {
    // (undocumented)
    toneCount: number;
}

// Warning: (ae-missing-release-tag) "SoundSwitchCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const SoundSwitchCCValues: Readonly<{
    defaultToneId: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Sound Switch"];
            property: "defaultToneId";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Sound Switch"];
            readonly endpoint: number;
            readonly property: "defaultToneId";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly min: 1;
            readonly max: 254;
            readonly label: "Default tone ID";
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    defaultVolume: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Sound Switch"];
            property: "defaultVolume";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Sound Switch"];
            readonly endpoint: number;
            readonly property: "defaultVolume";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly min: 0;
            readonly max: 100;
            readonly unit: "%";
            readonly label: "Default volume";
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    toneId: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Sound Switch"];
            property: "toneId";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Sound Switch"];
            readonly endpoint: number;
            readonly property: "toneId";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Play Tone";
            readonly valueChangeOptions: readonly ["volume"];
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    volume: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Sound Switch"];
            property: "volume";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Sound Switch"];
            readonly endpoint: number;
            readonly property: "volume";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly min: 0;
            readonly max: 100;
            readonly unit: "%";
            readonly label: "Volume";
            readonly allowManualEntry: true;
            readonly states: {
                readonly 0: "default";
            };
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "SoundSwitchCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum SoundSwitchCommand {
    // (undocumented)
    ConfigurationGet = 6,
    // (undocumented)
    ConfigurationReport = 7,
    // (undocumented)
    ConfigurationSet = 5,
    // (undocumented)
    ToneInfoGet = 3,
    // (undocumented)
    ToneInfoReport = 4,
    // (undocumented)
    TonePlayGet = 9,
    // (undocumented)
    TonePlayReport = 10,
    // (undocumented)
    TonePlaySet = 8,
    // (undocumented)
    TonesNumberGet = 1,
    // (undocumented)
    TonesNumberReport = 2
}

// Warning: (ae-missing-release-tag) "SPANExtension" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SPANExtension extends Security2Extension {
    // Warning: (ae-forgotten-export) The symbol "SPANExtensionOptions" needs to be exported by the entry point index.d.ts
    constructor(options: SPANExtensionOptions & Security2ExtensionBaseOptions);
    // (undocumented)
    static readonly expectedLength = 18;
    // (undocumented)
    static from(raw: Security2ExtensionRaw): Security2Extension;
    // (undocumented)
    senderEI: Uint8Array;
    // (undocumented)
    serialize(moreToFollow: boolean): Bytes;
    // (undocumented)
    toLogEntry(): string;
}

// Warning: (ae-missing-release-tag) "SubsystemState" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum SubsystemState {
    // (undocumented)
    Off = 0,
    // (undocumented)
    On = 255
}

// Warning: (ae-missing-release-tag) "SubsystemType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum SubsystemType {
    // (undocumented)
    Audible = 1,
    // (undocumented)
    Visual = 2
}

// Warning: (ae-missing-release-tag) "SupervisionCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SupervisionCC extends CommandClass {
    // (undocumented)
    ccCommand: SupervisionCommand;
    static encapsulate(cc: CommandClass, sessionId: number, requestStatusUpdates?: boolean): SupervisionCCGet;
    static getCCSupportedWithSupervision(ctx: GetValueDB_2, endpoint: EndpointId_2, ccId: CommandClasses): boolean;
    static getSessionId(command: CommandClass): number | undefined;
    static mayUseSupervision<T extends CommandClass>(ctx: GetValueDB_2 & GetNode_2<NodeId & SupportsCC & GetEndpoint<EndpointId_2>>, command: T): command is SinglecastCC_2<T>;
    // (undocumented)
    nodeId: number;
    static requiresEncapsulation(cc: CommandClass): boolean;
    static setCCSupportedWithSupervision(ctx: GetValueDB_2, endpoint: EndpointId_2, ccId: CommandClasses, supported: boolean): void;
}

// Warning: (ae-missing-release-tag) "SupervisionCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SupervisionCCGet extends SupervisionCC {
    constructor(options: WithAddress<SupervisionCCGetOptions>);
    // (undocumented)
    protected computeEncapsulationOverhead(): number;
    // (undocumented)
    encapsulated: CommandClass;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): SupervisionCCGet;
    // (undocumented)
    requestStatusUpdates: boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    sessionId: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "SupervisionCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface SupervisionCCGetOptions {
    // (undocumented)
    encapsulated: CommandClass;
    // (undocumented)
    requestStatusUpdates: boolean;
    // (undocumented)
    sessionId: number;
}

// Warning: (ae-missing-release-tag) "SupervisionCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class SupervisionCCReport extends SupervisionCC {
    constructor(options: WithAddress<SupervisionCCReportOptions>);
    // (undocumented)
    readonly duration: Duration | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): SupervisionCCReport;
    // (undocumented)
    readonly moreUpdatesFollow: boolean;
    // (undocumented)
    readonly requestWakeUpOnDemand: boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly sessionId: number;
    // (undocumented)
    readonly status: SupervisionStatus;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    toSupervisionResult(): SupervisionResult;
}

// Warning: (ae-missing-release-tag) "SupervisionCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type SupervisionCCReportOptions = {
    moreUpdatesFollow: boolean;
    requestWakeUpOnDemand?: boolean;
    sessionId: number;
} & ({
    status: SupervisionStatus.Working;
    duration: Duration;
} | {
    status: SupervisionStatus.NoSupport | SupervisionStatus.Fail | SupervisionStatus.Success;
});

// Warning: (ae-missing-release-tag) "SupervisionCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const SupervisionCCValues: Readonly<{
    ccSupported: ((ccId: CommandClasses) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: CommandClasses.Supervision;
            property: "ccSupported";
            propertyKey: CommandClasses;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Supervision;
            readonly endpoint: number;
            readonly property: "ccSupported";
            readonly propertyKey: CommandClasses;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly internal: true;
            readonly supportsEndpoints: false;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "SupervisionCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum SupervisionCommand {
    // (undocumented)
    Get = 1,
    // (undocumented)
    Report = 2
}

// Warning: (ae-missing-release-tag) "supervisionResultToSetValueResult" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function supervisionResultToSetValueResult(result: SupervisionResult | undefined): SetValueResult;

// Warning: (ae-missing-release-tag) "Switchpoint" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface Switchpoint {
    // (undocumented)
    hour: number;
    // (undocumented)
    minute: number;
    // (undocumented)
    state: SetbackState | undefined;
}

// Warning: (ae-missing-release-tag) "SwitchType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum SwitchType {
    // (undocumented)
    "CCW/CW" = 4,
    // (undocumented)
    "Close/Open" = 3,
    // (undocumented)
    "Down/Up" = 2,
    // (undocumented)
    "Left/Right" = 5,
    // (undocumented)
    "not supported" = 0,
    // (undocumented)
    "Off/On" = 1,
    // (undocumented)
    "Pull/Push" = 7,
    // (undocumented)
    "Reverse/Forward" = 6
}

// Warning: (ae-missing-release-tag) "ThermostatFanMode" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ThermostatFanMode {
    // (undocumented)
    "Auto high" = 2,
    // (undocumented)
    "Auto low" = 0,
    // (undocumented)
    "Auto medium" = 4,
    // (undocumented)
    "External circulation" = 11,
    // (undocumented)
    "Humidity circulation" = 7,
    // (undocumented)
    "Left and right" = 8,
    // (undocumented)
    "Up and down" = 9,
    // (undocumented)
    "Circulation" = 6,
    // (undocumented)
    "High" = 3,
    // (undocumented)
    "Low" = 1,
    // (undocumented)
    "Medium" = 5,
    // (undocumented)
    "Quiet" = 10
}

// Warning: (ae-missing-release-tag) "ThermostatFanModeCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatFanModeCC extends CommandClass {
    // (undocumented)
    ccCommand: ThermostatFanModeCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "ThermostatFanModeCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatFanModeCCGet extends ThermostatFanModeCC {
}

// Warning: (ae-missing-release-tag) "ThermostatFanModeCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatFanModeCCReport extends ThermostatFanModeCC {
    constructor(options: WithAddress<ThermostatFanModeCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ThermostatFanModeCCReport;
    // (undocumented)
    readonly mode: ThermostatFanMode;
    // (undocumented)
    readonly off: boolean | undefined;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ThermostatFanModeCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ThermostatFanModeCCReportOptions {
    // (undocumented)
    mode: ThermostatFanMode;
    // (undocumented)
    off?: boolean;
}

// Warning: (ae-missing-release-tag) "ThermostatFanModeCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatFanModeCCSet extends ThermostatFanModeCC {
    constructor(options: WithAddress<ThermostatFanModeCCSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): ThermostatFanModeCCSet;
    // (undocumented)
    mode: ThermostatFanMode;
    // (undocumented)
    off: boolean | undefined;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ThermostatFanModeCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ThermostatFanModeCCSetOptions {
    // (undocumented)
    mode: ThermostatFanMode;
    // (undocumented)
    off?: boolean;
}

// Warning: (ae-missing-release-tag) "ThermostatFanModeCCSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatFanModeCCSupportedGet extends ThermostatFanModeCC {
}

// Warning: (ae-missing-release-tag) "ThermostatFanModeCCSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatFanModeCCSupportedReport extends ThermostatFanModeCC {
    constructor(options: WithAddress<ThermostatFanModeCCSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ThermostatFanModeCCSupportedReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    readonly supportedModes: ThermostatFanMode[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ThermostatFanModeCCSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ThermostatFanModeCCSupportedReportOptions {
    // (undocumented)
    supportedModes: ThermostatFanMode[];
}

// Warning: (ae-missing-release-tag) "ThermostatFanModeCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const ThermostatFanModeCCValues: Readonly<{
    supportedFanModes: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Thermostat Fan Mode"];
            property: "supportedModes";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Thermostat Fan Mode"];
            readonly endpoint: number;
            readonly property: "supportedModes";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    fanMode: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Thermostat Fan Mode"];
            property: "mode";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Thermostat Fan Mode"];
            readonly endpoint: number;
            readonly property: "mode";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly states: {
                [x: number]: string;
            };
            readonly label: "Thermostat fan mode";
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    turnedOff: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Thermostat Fan Mode"];
            property: "off";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Thermostat Fan Mode"];
            readonly endpoint: number;
            readonly property: "off";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Thermostat fan turned off";
            readonly type: "boolean";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 3;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "ThermostatFanModeCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ThermostatFanModeCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1,
    // (undocumented)
    SupportedGet = 4,
    // (undocumented)
    SupportedReport = 5
}

// Warning: (ae-missing-release-tag) "ThermostatFanState" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ThermostatFanState {
    // (undocumented)
    "Circulation mode" = 4,
    // (undocumented)
    "Humidity circulation mode" = 5,
    // (undocumented)
    "Idle / off" = 0,
    // (undocumented)
    "Quiet circulation mode" = 8,
    // (undocumented)
    "Right - left circulation mode" = 6,
    // (undocumented)
    "Running / running low" = 1,
    // (undocumented)
    "Running high" = 2,
    // (undocumented)
    "Running medium" = 3,
    // (undocumented)
    "Up - down circulation mode" = 7
}

// Warning: (ae-missing-release-tag) "ThermostatFanStateCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatFanStateCC extends CommandClass {
    // (undocumented)
    ccCommand: ThermostatFanStateCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "ThermostatFanStateCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatFanStateCCGet extends ThermostatFanStateCC {
}

// Warning: (ae-missing-release-tag) "ThermostatFanStateCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatFanStateCCReport extends ThermostatFanStateCC {
    constructor(options: WithAddress<ThermostatFanStateCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ThermostatFanStateCCReport;
    // (undocumented)
    readonly state: ThermostatFanState;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ThermostatFanStateCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ThermostatFanStateCCReportOptions {
    // (undocumented)
    state: ThermostatFanState;
}

// Warning: (ae-missing-release-tag) "ThermostatFanStateCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const ThermostatFanStateCCValues: Readonly<{
    fanState: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Thermostat Fan State"];
            property: "state";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Thermostat Fan State"];
            readonly endpoint: number;
            readonly property: "state";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly states: {
                [x: number]: string;
            };
            readonly label: "Thermostat fan state";
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "ThermostatFanStateCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ThermostatFanStateCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3
}

// Warning: (ae-missing-release-tag) "ThermostatMode" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ThermostatMode {
    // (undocumented)
    "Auto changeover" = 10,
    // (undocumented)
    "Energy cool" = 12,
    // (undocumented)
    "Energy heat" = 11,
    // (undocumented)
    "Full power" = 15,
    // (undocumented)
    "Manufacturer specific" = 31,
    // (undocumented)
    "Resume (on)" = 5,
    // (undocumented)
    "Auto" = 3,
    // (undocumented)
    "Auxiliary" = 4,
    // (undocumented)
    "Away" = 13,
    // (undocumented)
    "Cool" = 2,
    // (undocumented)
    "Dry" = 8,
    // (undocumented)
    "Fan" = 6,
    // (undocumented)
    "Furnace" = 7,
    // (undocumented)
    "Heat" = 1,
    // (undocumented)
    "Moist" = 9,
    // (undocumented)
    "Off" = 0
}

// Warning: (ae-missing-release-tag) "ThermostatModeCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatModeCC extends CommandClass {
    // (undocumented)
    ccCommand: ThermostatModeCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "ThermostatModeCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatModeCCGet extends ThermostatModeCC {
}

// Warning: (ae-missing-release-tag) "ThermostatModeCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatModeCCReport extends ThermostatModeCC {
    constructor(options: WithAddress<ThermostatModeCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ThermostatModeCCReport;
    // (undocumented)
    readonly manufacturerData: Uint8Array | undefined;
    // (undocumented)
    readonly mode: ThermostatMode;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ThermostatModeCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ThermostatModeCCReportOptions = {
    mode: Exclude<ThermostatMode, (typeof ThermostatMode)["Manufacturer specific"]>;
    manufacturerData?: undefined;
} | {
    mode: (typeof ThermostatMode)["Manufacturer specific"];
    manufacturerData?: Uint8Array;
};

// Warning: (ae-missing-release-tag) "ThermostatModeCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatModeCCSet extends ThermostatModeCC {
    constructor(options: WithAddress<ThermostatModeCCSetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ThermostatModeCCSet;
    // (undocumented)
    manufacturerData?: Uint8Array;
    // (undocumented)
    mode: ThermostatMode;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ThermostatModeCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ThermostatModeCCSetOptions = {
    mode: Exclude<ThermostatMode, (typeof ThermostatMode)["Manufacturer specific"]>;
} | {
    mode: (typeof ThermostatMode)["Manufacturer specific"];
    manufacturerData: Uint8Array;
};

// Warning: (ae-missing-release-tag) "ThermostatModeCCSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatModeCCSupportedGet extends ThermostatModeCC {
}

// Warning: (ae-missing-release-tag) "ThermostatModeCCSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatModeCCSupportedReport extends ThermostatModeCC {
    constructor(options: WithAddress<ThermostatModeCCSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ThermostatModeCCSupportedReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly supportedModes: ThermostatMode[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ThermostatModeCCSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ThermostatModeCCSupportedReportOptions {
    // (undocumented)
    supportedModes: ThermostatMode[];
}

// Warning: (ae-missing-release-tag) "ThermostatModeCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const ThermostatModeCCValues: Readonly<{
    supportedModes: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Thermostat Mode"];
            property: "supportedModes";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Thermostat Mode"];
            readonly endpoint: number;
            readonly property: "supportedModes";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    manufacturerData: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Thermostat Mode"];
            property: "manufacturerData";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Thermostat Mode"];
            readonly endpoint: number;
            readonly property: "manufacturerData";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Manufacturer data";
            readonly writeable: false;
            readonly type: "buffer";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    thermostatMode: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Thermostat Mode"];
            property: "mode";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Thermostat Mode"];
            readonly endpoint: number;
            readonly property: "mode";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly states: {
                [x: number]: string;
            };
            readonly label: "Thermostat mode";
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "ThermostatModeCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ThermostatModeCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1,
    // (undocumented)
    SupportedGet = 4,
    // (undocumented)
    SupportedReport = 5
}

// Warning: (ae-missing-release-tag) "ThermostatOperatingState" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ThermostatOperatingState {
    // (undocumented)
    "2nd Stage Aux Heat" = 10,
    // (undocumented)
    "2nd Stage Cooling" = 9,
    // (undocumented)
    "2nd Stage Heating" = 8,
    // (undocumented)
    "3rd Stage Aux Heat" = 11,
    // (undocumented)
    "Aux Heating" = 7,
    // (undocumented)
    "Fan Only" = 3,
    // (undocumented)
    "Pending Cool" = 5,
    // (undocumented)
    "Pending Heat" = 4,
    // (undocumented)
    "Vent/Economizer" = 6,
    // (undocumented)
    "Cooling" = 2,
    // (undocumented)
    "Heating" = 1,
    // (undocumented)
    "Idle" = 0
}

// Warning: (ae-missing-release-tag) "ThermostatOperatingStateCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatOperatingStateCC extends CommandClass {
    // (undocumented)
    ccCommand: ThermostatOperatingStateCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "ThermostatOperatingStateCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatOperatingStateCCGet extends ThermostatOperatingStateCC {
}

// Warning: (ae-missing-release-tag) "ThermostatOperatingStateCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatOperatingStateCCReport extends ThermostatOperatingStateCC {
    constructor(options: WithAddress<ThermostatOperatingStateCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ThermostatOperatingStateCCReport;
    // (undocumented)
    readonly state: ThermostatOperatingState;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ThermostatOperatingStateCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ThermostatOperatingStateCCReportOptions {
    // (undocumented)
    state: ThermostatOperatingState;
}

// Warning: (ae-missing-release-tag) "ThermostatOperatingStateCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const ThermostatOperatingStateCCValues: Readonly<{
    operatingState: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Thermostat Operating State"];
            property: "state";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Thermostat Operating State"];
            readonly endpoint: number;
            readonly property: "state";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Operating state";
            readonly states: {
                [x: number]: string;
            };
            readonly writeable: false;
            readonly min: 0;
            readonly max: 255;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "ThermostatOperatingStateCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ThermostatOperatingStateCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3
}

// Warning: (ae-missing-release-tag) "ThermostatSetbackCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatSetbackCC extends CommandClass {
    // (undocumented)
    ccCommand: ThermostatSetbackCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "ThermostatSetbackCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatSetbackCCGet extends ThermostatSetbackCC {
}

// Warning: (ae-missing-release-tag) "ThermostatSetbackCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatSetbackCCReport extends ThermostatSetbackCC {
    constructor(options: WithAddress<ThermostatSetbackCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ThermostatSetbackCCReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    readonly setbackState: SetbackState;
    // (undocumented)
    readonly setbackType: SetbackType;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ThermostatSetbackCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ThermostatSetbackCCReportOptions {
    // (undocumented)
    setbackState: SetbackState;
    // (undocumented)
    setbackType: SetbackType;
}

// Warning: (ae-missing-release-tag) "ThermostatSetbackCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatSetbackCCSet extends ThermostatSetbackCC {
    constructor(options: WithAddress<ThermostatSetbackCCSetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ThermostatSetbackCCSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    setbackState: SetbackState;
    // (undocumented)
    setbackType: SetbackType;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ThermostatSetbackCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ThermostatSetbackCCSetOptions {
    // (undocumented)
    setbackState: SetbackState;
    // (undocumented)
    setbackType: SetbackType;
}

// Warning: (ae-missing-release-tag) "ThermostatSetbackCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ThermostatSetbackCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointCapabilities" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ThermostatSetpointCapabilities {
    // (undocumented)
    maxValue: number;
    // (undocumented)
    maxValueScale: number;
    // (undocumented)
    minValue: number;
    // (undocumented)
    minValueScale: number;
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatSetpointCC extends CommandClass {
    // (undocumented)
    ccCommand: ThermostatSetpointCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
    // (undocumented)
    translatePropertyKey(ctx: GetValueDB_2, property: string | number, propertyKey: string | number): string | undefined;
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointCCCapabilitiesGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatSetpointCCCapabilitiesGet extends ThermostatSetpointCC {
    constructor(options: WithAddress<ThermostatSetpointCCCapabilitiesGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ThermostatSetpointCCCapabilitiesGet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    setpointType: ThermostatSetpointType;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointCCCapabilitiesGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ThermostatSetpointCCCapabilitiesGetOptions {
    // (undocumented)
    setpointType: ThermostatSetpointType;
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointCCCapabilitiesReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatSetpointCCCapabilitiesReport extends ThermostatSetpointCC {
    constructor(options: WithAddress<ThermostatSetpointCCCapabilitiesReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ThermostatSetpointCCCapabilitiesReport;
    // (undocumented)
    maxValue: number;
    // (undocumented)
    maxValueScale: number;
    // (undocumented)
    minValue: number;
    // (undocumented)
    minValueScale: number;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    type: ThermostatSetpointType;
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointCCCapabilitiesReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ThermostatSetpointCCCapabilitiesReportOptions {
    // (undocumented)
    maxValue: number;
    // (undocumented)
    maxValueScale: number;
    // (undocumented)
    minValue: number;
    // (undocumented)
    minValueScale: number;
    // (undocumented)
    type: ThermostatSetpointType;
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatSetpointCCGet extends ThermostatSetpointCC {
    constructor(options: WithAddress<ThermostatSetpointCCGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ThermostatSetpointCCGet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    setpointType: ThermostatSetpointType;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ThermostatSetpointCCGetOptions {
    // (undocumented)
    setpointType: ThermostatSetpointType;
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatSetpointCCReport extends ThermostatSetpointCC {
    constructor(options: WithAddress<ThermostatSetpointCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ThermostatSetpointCCReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    scale: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    type: ThermostatSetpointType;
    // (undocumented)
    value: number;
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ThermostatSetpointCCReportOptions {
    // (undocumented)
    scale: number;
    // (undocumented)
    type: ThermostatSetpointType;
    // (undocumented)
    value: number;
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatSetpointCCSet extends ThermostatSetpointCC {
    constructor(options: WithAddress<ThermostatSetpointCCSetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ThermostatSetpointCCSet;
    // (undocumented)
    scale: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    setpointType: ThermostatSetpointType;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    value: number;
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ThermostatSetpointCCSetOptions {
    // (undocumented)
    scale: number;
    // (undocumented)
    setpointType: ThermostatSetpointType;
    // (undocumented)
    value: number;
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointCCSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatSetpointCCSupportedGet extends ThermostatSetpointCC {
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointCCSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ThermostatSetpointCCSupportedReport extends ThermostatSetpointCC {
    constructor(options: WithAddress<ThermostatSetpointCCSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ThermostatSetpointCCSupportedReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly supportedSetpointTypes: readonly ThermostatSetpointType[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointCCSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ThermostatSetpointCCSupportedReportOptions {
    // (undocumented)
    supportedSetpointTypes: ThermostatSetpointType[];
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const ThermostatSetpointCCValues: Readonly<{
    setpointScale: ((setpointType: ThermostatSetpointType) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Thermostat Setpoint"];
            property: "setpointScale";
            propertyKey: ThermostatSetpointType;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Thermostat Setpoint"];
            readonly endpoint: number;
            readonly property: "setpointScale";
            readonly propertyKey: ThermostatSetpointType;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    setpoint: ((setpointType: ThermostatSetpointType) => {
        readonly meta: {
            readonly label: `Setpoint (${string})`;
            readonly ccSpecific: {
                readonly setpointType: ThermostatSetpointType;
            };
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["Thermostat Setpoint"];
            property: "setpoint";
            propertyKey: ThermostatSetpointType;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Thermostat Setpoint"];
            readonly endpoint: number;
            readonly property: "setpoint";
            readonly propertyKey: ThermostatSetpointType;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    supportedSetpointTypes: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Thermostat Setpoint"];
            property: "supportedSetpointTypes";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Thermostat Setpoint"];
            readonly endpoint: number;
            readonly property: "supportedSetpointTypes";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "ThermostatSetpointCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ThermostatSetpointCommand {
    // (undocumented)
    CapabilitiesGet = 9,
    // (undocumented)
    CapabilitiesReport = 10,
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1,
    // (undocumented)
    SupportedGet = 4,
    // (undocumented)
    SupportedReport = 5
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointMetadata" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ThermostatSetpointMetadata = ValueMetadata_2 & {
    ccSpecific: {
        setpointType: ThermostatSetpointType;
    };
};

// Warning: (ae-missing-release-tag) "ThermostatSetpointType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ThermostatSetpointType {
    // (undocumented)
    "Auto Changeover" = 10,
    // (undocumented)
    "Away Cooling" = 14,// CC v1
    // (undocumented)
    "Away Heating" = 13,// CC v1
    // (undocumented)
    "Dry Air" = 8,// CC v1
    // (undocumented)
    "Energy Save Cooling" = 12,// CC v1
    // (undocumented)
    "Energy Save Heating" = 11,// CC v1
    // (undocumented)
    "Full Power" = 15,// CC v1
    // (undocumented)
    "Moist Air" = 9,// CC v2
    // (undocumented)
    "N/A" = 0,// CC v2
    // (undocumented)
    "Cooling" = 2,// CC v2
    // (undocumented)
    "Furnace" = 7,// CC v3
    // (undocumented)
    "Heating" = 1
}

// Warning: (ae-missing-release-tag) "ThermostatSetpointValue" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ThermostatSetpointValue {
    // (undocumented)
    scale: number;
    // (undocumented)
    value: number;
}

// Warning: (ae-missing-release-tag) "throwMissingPropertyKey" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function throwMissingPropertyKey(cc: CommandClasses_2, property: string | number): never;

// Warning: (ae-missing-release-tag) "throwUnsupportedProperty" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function throwUnsupportedProperty(cc: CommandClasses_2, property: string | number): never;

// Warning: (ae-missing-release-tag) "throwUnsupportedPropertyKey" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function throwUnsupportedPropertyKey(cc: CommandClasses_2, property: string | number, propertyKey: string | number): never;

// Warning: (ae-missing-release-tag) "throwWrongValueType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function throwWrongValueType(cc: CommandClasses_2, property: string | number, expectedType: string, receivedType: string): never;

// Warning: (ae-missing-release-tag) "TimeCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TimeCC extends CommandClass {
    // (undocumented)
    ccCommand: TimeCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "TimeCCDateGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TimeCCDateGet extends TimeCC {
}

// Warning: (ae-missing-release-tag) "TimeCCDateReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TimeCCDateReport extends TimeCC {
    constructor(options: WithAddress_2<TimeCCDateReportOptions>);
    // (undocumented)
    day: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): TimeCCDateReport;
    // (undocumented)
    month: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
    // (undocumented)
    year: number;
}

// Warning: (ae-missing-release-tag) "TimeCCDateReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface TimeCCDateReportOptions {
    // (undocumented)
    day: number;
    // (undocumented)
    month: number;
    // (undocumented)
    year: number;
}

// Warning: (ae-missing-release-tag) "TimeCCTimeGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TimeCCTimeGet extends TimeCC {
}

// Warning: (ae-missing-release-tag) "TimeCCTimeOffsetGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TimeCCTimeOffsetGet extends TimeCC {
}

// Warning: (ae-missing-release-tag) "TimeCCTimeOffsetReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TimeCCTimeOffsetReport extends TimeCC {
    constructor(options: WithAddress_2<TimeCCTimeOffsetReportOptions>);
    // (undocumented)
    dstEndDate: Date;
    // (undocumented)
    dstOffset: number;
    // (undocumented)
    dstStartDate: Date;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): TimeCCTimeOffsetReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    standardOffset: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "TimeCCTimeOffsetReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface TimeCCTimeOffsetReportOptions {
    // (undocumented)
    dstEnd: Date;
    // (undocumented)
    dstOffset: number;
    // (undocumented)
    dstStart: Date;
    // (undocumented)
    standardOffset: number;
}

// Warning: (ae-missing-release-tag) "TimeCCTimeOffsetSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TimeCCTimeOffsetSet extends TimeCC {
    constructor(options: WithAddress_2<TimeCCTimeOffsetSetOptions>);
    // (undocumented)
    dstEndDate: Date;
    // (undocumented)
    dstOffset: number;
    // (undocumented)
    dstStartDate: Date;
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): TimeCCTimeOffsetSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    standardOffset: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "TimeCCTimeOffsetSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface TimeCCTimeOffsetSetOptions {
    // (undocumented)
    dstEnd: Date;
    // (undocumented)
    dstOffset: number;
    // (undocumented)
    dstStart: Date;
    // (undocumented)
    standardOffset: number;
}

// Warning: (ae-missing-release-tag) "TimeCCTimeReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TimeCCTimeReport extends TimeCC {
    constructor(options: WithAddress_2<TimeCCTimeReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): TimeCCTimeReport;
    // (undocumented)
    hour: number;
    // (undocumented)
    minute: number;
    // (undocumented)
    second: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "TimeCCTimeReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface TimeCCTimeReportOptions {
    // (undocumented)
    hour: number;
    // (undocumented)
    minute: number;
    // (undocumented)
    second: number;
}

// Warning: (ae-missing-release-tag) "TimeCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum TimeCommand {
    // (undocumented)
    DateGet = 3,
    // (undocumented)
    DateReport = 4,
    // (undocumented)
    TimeGet = 1,
    // (undocumented)
    TimeOffsetGet = 6,
    // (undocumented)
    TimeOffsetReport = 7,
    // (undocumented)
    TimeOffsetSet = 5,
    // (undocumented)
    TimeReport = 2
}

// Warning: (ae-missing-release-tag) "TimeParametersCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TimeParametersCC extends CommandClass {
    // (undocumented)
    ccCommand: TimeParametersCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "TimeParametersCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TimeParametersCCGet extends TimeParametersCC {
}

// Warning: (ae-missing-release-tag) "TimeParametersCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TimeParametersCCReport extends TimeParametersCC {
    constructor(options: WithAddress_2<TimeParametersCCReportOptions>);
    // (undocumented)
    dateAndTime: Date;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): TimeParametersCCReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "TimeParametersCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface TimeParametersCCReportOptions {
    // (undocumented)
    dateAndTime: Date;
}

// Warning: (ae-missing-release-tag) "TimeParametersCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TimeParametersCCSet extends TimeParametersCC {
    constructor(options: WithAddress_2<TimeParametersCCSetOptions>);
    // (undocumented)
    dateAndTime: Date;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): TimeParametersCCSet;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "TimeParametersCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface TimeParametersCCSetOptions {
    // (undocumented)
    dateAndTime: Date;
    // (undocumented)
    useLocalTime?: boolean;
}

// Warning: (ae-missing-release-tag) "TimeParametersCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const TimeParametersCCValues: Readonly<{
    dateAndTime: {
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Time Parameters"];
            property: "dateAndTime";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Time Parameters"];
            readonly endpoint: number;
            readonly property: "dateAndTime";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly label: "Date and Time";
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "TimeParametersCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum TimeParametersCommand {
    // (undocumented)
    Get = 2,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1
}

// Warning: (ae-missing-release-tag) "Timezone" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface Timezone {
    // (undocumented)
    dstOffset: number;
    // (undocumented)
    standardOffset: number;
}

// Warning: (ae-missing-release-tag) "ToneId" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ToneId {
    // (undocumented)
    Default = 255,
    // (undocumented)
    Off = 0
}

// Warning: (ae-missing-release-tag) "TransportServiceCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TransportServiceCC extends CommandClass implements SinglecastCC_2<TransportServiceCC> {
    // (undocumented)
    ccCommand: TransportServiceCommand;
    // (undocumented)
    nodeId: number;
}

// Warning: (ae-missing-release-tag) "TransportServiceCCFirstSegment" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TransportServiceCCFirstSegment extends TransportServiceCC {
    constructor(options: WithAddress<TransportServiceCCFirstSegmentOptions>);
    // (undocumented)
    protected computeEncapsulationOverhead(): number;
    // (undocumented)
    datagramSize: number;
    // (undocumented)
    encapsulated: CommandClass;
    // (undocumented)
    expectMoreMessages(): boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): TransportServiceCCFirstSegment;
    // (undocumented)
    getPartialCCSessionId(): Record<string, any> | undefined;
    // (undocumented)
    headerExtension: Uint8Array | undefined;
    // (undocumented)
    partialDatagram: Uint8Array;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    sessionId: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "TransportServiceCCFirstSegmentOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface TransportServiceCCFirstSegmentOptions {
    // (undocumented)
    datagramSize: number;
    // (undocumented)
    headerExtension?: Uint8Array | undefined;
    // (undocumented)
    partialDatagram: Uint8Array;
    // (undocumented)
    sessionId: number;
}

// Warning: (ae-missing-release-tag) "TransportServiceCCSegmentComplete" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TransportServiceCCSegmentComplete extends TransportServiceCC {
    constructor(options: WithAddress<TransportServiceCCSegmentCompleteOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): TransportServiceCCSegmentComplete;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    sessionId: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "TransportServiceCCSegmentCompleteOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface TransportServiceCCSegmentCompleteOptions {
    // (undocumented)
    sessionId: number;
}

// Warning: (ae-missing-release-tag) "TransportServiceCCSegmentRequest" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TransportServiceCCSegmentRequest extends TransportServiceCC {
    constructor(options: WithAddress<TransportServiceCCSegmentRequestOptions>);
    // (undocumented)
    datagramOffset: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): TransportServiceCCSegmentRequest;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    sessionId: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "TransportServiceCCSegmentRequestOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface TransportServiceCCSegmentRequestOptions {
    // (undocumented)
    datagramOffset: number;
    // (undocumented)
    sessionId: number;
}

// Warning: (ae-missing-release-tag) "TransportServiceCCSegmentWait" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TransportServiceCCSegmentWait extends TransportServiceCC {
    constructor(options: WithAddress<TransportServiceCCSegmentWaitOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): TransportServiceCCSegmentWait;
    // (undocumented)
    pendingSegments: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "TransportServiceCCSegmentWaitOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface TransportServiceCCSegmentWaitOptions {
    // (undocumented)
    pendingSegments: number;
}

// Warning: (ae-missing-release-tag) "TransportServiceCCSubsequentSegment" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class TransportServiceCCSubsequentSegment extends TransportServiceCC {
    constructor(options: WithAddress<TransportServiceCCSubsequentSegmentOptions>);
    // (undocumented)
    protected computeEncapsulationOverhead(): number;
    // (undocumented)
    datagramOffset: number;
    // (undocumented)
    datagramSize: number;
    // (undocumented)
    get encapsulated(): CommandClass;
    // (undocumented)
    expectMoreMessages(session: [
    TransportServiceCCFirstSegment,
    ...TransportServiceCCSubsequentSegment[]
    ]): boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): TransportServiceCCSubsequentSegment;
    // (undocumented)
    getPartialCCSessionId(): Record<string, any> | undefined;
    // (undocumented)
    headerExtension: Uint8Array | undefined;
    // (undocumented)
    mergePartialCCs(partials: [
    TransportServiceCCFirstSegment,
    ...TransportServiceCCSubsequentSegment[]
    ], ctx: CCParsingContext_2): void;
    // (undocumented)
    partialDatagram: Uint8Array;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    sessionId: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "TransportServiceCCSubsequentSegmentOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface TransportServiceCCSubsequentSegmentOptions extends TransportServiceCCFirstSegmentOptions {
    // (undocumented)
    datagramOffset: number;
}

// Warning: (ae-missing-release-tag) "TransportServiceCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum TransportServiceCommand {
    // (undocumented)
    FirstSegment = 192,
    // (undocumented)
    SegmentComplete = 232,
    // (undocumented)
    SegmentRequest = 200,
    // (undocumented)
    SegmentWait = 240,
    // (undocumented)
    SubsequentSegment = 224
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "TransportServiceTimeouts" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const TransportServiceTimeouts: {
    requestMissingSegmentR2: number;
    requestMissingSegmentR3: number;
    segmentCompleteR2: number;
    segmentCompleteR3: number;
    relaxedTimingDelayR2: number;
    relaxedTimingDelayR3: number;
};

// Warning: (ae-missing-release-tag) "UserCodeCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCC extends CommandClass {
    // (undocumented)
    ccCommand: UserCodeCommand;
    static getSupportedASCIICharsCached(ctx: GetValueDB_2, endpoint: EndpointId_2): MaybeNotKnown<string>;
    static getSupportedKeypadModesCached(ctx: GetValueDB_2, endpoint: EndpointId_2): MaybeNotKnown<KeypadMode[]>;
    static getSupportedUserIDStatusesCached(ctx: GetValueDB_2, endpoint: EndpointId_2): MaybeNotKnown<UserIDStatus[]>;
    static getSupportedUsersCached(ctx: GetValueDB_2, endpoint: EndpointId_2): MaybeNotKnown<number>;
    static getUserCodeCached(ctx: GetValueDB_2, endpoint: EndpointId_2, userId: number): MaybeNotKnown<string | Uint8Array>;
    static getUserIdStatusCached(ctx: GetValueDB_2, endpoint: EndpointId_2, userId: number): MaybeNotKnown<UserIDStatus>;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    refreshValues(ctx: RefreshValuesContext): Promise<void>;
    static supportsAdminCodeCached(ctx: GetValueDB_2, endpoint: EndpointId_2): boolean;
    static supportsAdminCodeDeactivationCached(ctx: GetValueDB_2, endpoint: EndpointId_2): boolean;
    static supportsMultipleUserCodeSetCached(ctx: GetValueDB_2, endpoint: EndpointId_2): boolean;
}

// Warning: (ae-missing-release-tag) "UserCodeCCAdminCodeGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCAdminCodeGet extends UserCodeCC {
}

// Warning: (ae-missing-release-tag) "UserCodeCCAdminCodeReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCAdminCodeReport extends UserCodeCC {
    constructor(options: WithAddress<UserCodeCCAdminCodeReportOptions>);
    // (undocumented)
    readonly adminCode: string;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): UserCodeCCAdminCodeReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "UserCodeCCAdminCodeReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface UserCodeCCAdminCodeReportOptions {
    // (undocumented)
    adminCode: string;
}

// Warning: (ae-missing-release-tag) "UserCodeCCAdminCodeSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCAdminCodeSet extends UserCodeCC {
    constructor(options: WithAddress<UserCodeCCAdminCodeSetOptions>);
    // (undocumented)
    adminCode: string;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): UserCodeCCAdminCodeSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "UserCodeCCAdminCodeSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface UserCodeCCAdminCodeSetOptions {
    // (undocumented)
    adminCode: string;
}

// Warning: (ae-missing-release-tag) "UserCodeCCCapabilitiesGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCCapabilitiesGet extends UserCodeCC {
}

// Warning: (ae-missing-release-tag) "UserCodeCCCapabilitiesReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCCapabilitiesReport extends UserCodeCC {
    constructor(options: WithAddress<UserCodeCCCapabilitiesReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): UserCodeCCCapabilitiesReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly supportedASCIIChars: string;
    // (undocumented)
    readonly supportedKeypadModes: readonly KeypadMode[];
    // (undocumented)
    readonly supportedUserIDStatuses: readonly UserIDStatus[];
    // (undocumented)
    readonly supportsAdminCode: boolean;
    // (undocumented)
    readonly supportsAdminCodeDeactivation: boolean;
    // (undocumented)
    readonly supportsMultipleUserCodeReport: boolean;
    // (undocumented)
    readonly supportsMultipleUserCodeSet: boolean;
    // (undocumented)
    readonly supportsUserCodeChecksum: boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "UserCodeCCCapabilitiesReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface UserCodeCCCapabilitiesReportOptions {
    // (undocumented)
    supportedASCIIChars: string;
    // (undocumented)
    supportedKeypadModes: readonly KeypadMode[];
    // (undocumented)
    supportedUserIDStatuses: readonly UserIDStatus[];
    // (undocumented)
    supportsAdminCode: boolean;
    // (undocumented)
    supportsAdminCodeDeactivation: boolean;
    // (undocumented)
    supportsMultipleUserCodeReport: boolean;
    // (undocumented)
    supportsMultipleUserCodeSet: boolean;
    // (undocumented)
    supportsUserCodeChecksum: boolean;
}

// Warning: (ae-missing-release-tag) "UserCodeCCExtendedUserCodeGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCExtendedUserCodeGet extends UserCodeCC {
    constructor(options: WithAddress<UserCodeCCExtendedUserCodeGetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): UserCodeCCExtendedUserCodeGet;
    // (undocumented)
    reportMore: boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    userId: number;
}

// Warning: (ae-missing-release-tag) "UserCodeCCExtendedUserCodeGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface UserCodeCCExtendedUserCodeGetOptions {
    // (undocumented)
    reportMore?: boolean;
    // (undocumented)
    userId: number;
}

// Warning: (ae-missing-release-tag) "UserCodeCCExtendedUserCodeReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCExtendedUserCodeReport extends UserCodeCC {
    constructor(options: WithAddress<UserCodeCCExtendedUserCodeReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): UserCodeCCExtendedUserCodeReport;
    // (undocumented)
    readonly nextUserId: number;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // Warning: (ae-forgotten-export) The symbol "UserCode" needs to be exported by the entry point index.d.ts
    //
    // (undocumented)
    readonly userCodes: readonly UserCode[];
}

// Warning: (ae-missing-release-tag) "UserCodeCCExtendedUserCodeReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface UserCodeCCExtendedUserCodeReportOptions {
    // (undocumented)
    nextUserId: number;
    // (undocumented)
    userCodes: UserCode[];
}

// Warning: (ae-missing-release-tag) "UserCodeCCExtendedUserCodeSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCExtendedUserCodeSet extends UserCodeCC {
    constructor(options: WithAddress<UserCodeCCExtendedUserCodeSetOptions>);
    // (undocumented)
    static from(_raw: CCRaw, _ctx: CCParsingContext_2): UserCodeCCExtendedUserCodeSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    userCodes: UserCodeCCSetOptions[];
}

// Warning: (ae-missing-release-tag) "UserCodeCCExtendedUserCodeSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface UserCodeCCExtendedUserCodeSetOptions {
    // (undocumented)
    userCodes: UserCodeCCSetOptions[];
}

// Warning: (ae-missing-release-tag) "UserCodeCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCGet extends UserCodeCC {
    constructor(options: WithAddress<UserCodeCCGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): UserCodeCCGet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    userId: number;
}

// Warning: (ae-missing-release-tag) "UserCodeCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface UserCodeCCGetOptions {
    // (undocumented)
    userId: number;
}

// Warning: (ae-missing-release-tag) "UserCodeCCKeypadModeGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCKeypadModeGet extends UserCodeCC {
}

// Warning: (ae-missing-release-tag) "UserCodeCCKeypadModeReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCKeypadModeReport extends UserCodeCC {
    constructor(options: WithAddress<UserCodeCCKeypadModeReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): UserCodeCCKeypadModeReport;
    // (undocumented)
    readonly keypadMode: KeypadMode;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "UserCodeCCKeypadModeReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface UserCodeCCKeypadModeReportOptions {
    // (undocumented)
    keypadMode: KeypadMode;
}

// Warning: (ae-missing-release-tag) "UserCodeCCKeypadModeSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCKeypadModeSet extends UserCodeCC {
    constructor(options: WithAddress<UserCodeCCKeypadModeSetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): UserCodeCCKeypadModeSet;
    // (undocumented)
    keypadMode: KeypadMode;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "UserCodeCCKeypadModeSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface UserCodeCCKeypadModeSetOptions {
    // (undocumented)
    keypadMode: KeypadMode;
}

// Warning: (ae-forgotten-export) The symbol "NotificationEventPayload" needs to be exported by the entry point index.d.ts
// Warning: (ae-missing-release-tag) "UserCodeCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCReport extends UserCodeCC implements NotificationEventPayload {
    constructor(options: WithAddress<UserCodeCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): UserCodeCCReport;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    toNotificationEventParameters(): {
        userId: number;
    };
    // (undocumented)
    readonly userCode: string | Bytes;
    // (undocumented)
    readonly userId: number;
    // (undocumented)
    readonly userIdStatus: UserIDStatus;
}

// Warning: (ae-missing-release-tag) "UserCodeCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface UserCodeCCReportOptions {
    // (undocumented)
    userCode?: string | Bytes;
    // (undocumented)
    userId: number;
    // (undocumented)
    userIdStatus: UserIDStatus;
}

// Warning: (ae-missing-release-tag) "UserCodeCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCSet extends UserCodeCC {
    constructor(options: WithAddress<UserCodeCCSetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): UserCodeCCSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    userCode: string | Uint8Array;
    // (undocumented)
    userId: number;
    // (undocumented)
    userIdStatus: UserIDStatus;
}

// Warning: (ae-missing-release-tag) "UserCodeCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type UserCodeCCSetOptions = {
    userId: 0;
    userIdStatus: UserIDStatus.Available;
    userCode?: undefined;
} | {
    userId: number;
    userIdStatus: UserIDStatus.Available;
    userCode?: undefined;
} | {
    userId: number;
    userIdStatus: Exclude<UserIDStatus, UserIDStatus.Available | UserIDStatus.StatusNotAvailable>;
    userCode: string | Uint8Array;
};

// Warning: (ae-missing-release-tag) "UserCodeCCUserCodeChecksumGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCUserCodeChecksumGet extends UserCodeCC {
}

// Warning: (ae-missing-release-tag) "UserCodeCCUserCodeChecksumReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCUserCodeChecksumReport extends UserCodeCC {
    constructor(options: WithAddress<UserCodeCCUserCodeChecksumReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): UserCodeCCUserCodeChecksumReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    readonly userCodeChecksum: number;
}

// Warning: (ae-missing-release-tag) "UserCodeCCUserCodeChecksumReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface UserCodeCCUserCodeChecksumReportOptions {
    // (undocumented)
    userCodeChecksum: number;
}

// Warning: (ae-missing-release-tag) "UserCodeCCUsersNumberGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCUsersNumberGet extends UserCodeCC {
}

// Warning: (ae-missing-release-tag) "UserCodeCCUsersNumberReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class UserCodeCCUsersNumberReport extends UserCodeCC {
    constructor(options: WithAddress<UserCodeCCUsersNumberReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): UserCodeCCUsersNumberReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    readonly supportedUsers: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "UserCodeCCUsersNumberReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface UserCodeCCUsersNumberReportOptions {
    // (undocumented)
    supportedUsers: number;
}

// Warning: (ae-missing-release-tag) "UserCodeCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const UserCodeCCValues: Readonly<{
    userCode: ((userId: number) => {
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["User Code"];
            property: "userCode";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["User Code"];
            readonly endpoint: number;
            readonly property: "userCode";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly stateful: true;
            readonly internal: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly secret: true;
        };
    };
    userIdStatus: ((userId: number) => {
        readonly meta: {
            readonly label: `User ID status (${number})`;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses)["User Code"];
            property: "userIdStatus";
            propertyKey: number;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["User Code"];
            readonly endpoint: number;
            readonly property: "userIdStatus";
            readonly propertyKey: number;
        };
    }) & {
        is: (valueId: ValueID_2) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    adminCode: {
        readonly id: {
            commandClass: (typeof CommandClasses)["User Code"];
            property: "adminCode";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["User Code"];
            readonly endpoint: number;
            readonly property: "adminCode";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Admin Code";
            readonly minLength: 4;
            readonly maxLength: 10;
            readonly type: "string";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 2;
            readonly secret: true;
        };
    };
    keypadMode: {
        readonly id: {
            commandClass: (typeof CommandClasses)["User Code"];
            property: "keypadMode";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["User Code"];
            readonly endpoint: number;
            readonly property: "keypadMode";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Keypad Mode";
            readonly writeable: false;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 2;
        };
    };
    userCodeChecksum: {
        readonly id: {
            commandClass: (typeof CommandClasses)["User Code"];
            property: "userCodeChecksum";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["User Code"];
            readonly endpoint: number;
            readonly property: "userCodeChecksum";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportedASCIIChars: {
        readonly id: {
            commandClass: (typeof CommandClasses)["User Code"];
            property: "supportedASCIIChars";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["User Code"];
            readonly endpoint: number;
            readonly property: "supportedASCIIChars";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportedKeypadModes: {
        readonly id: {
            commandClass: (typeof CommandClasses)["User Code"];
            property: "supportedKeypadModes";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["User Code"];
            readonly endpoint: number;
            readonly property: "supportedKeypadModes";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportedUserIDStatuses: {
        readonly id: {
            commandClass: (typeof CommandClasses)["User Code"];
            property: "supportedUserIDStatuses";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["User Code"];
            readonly endpoint: number;
            readonly property: "supportedUserIDStatuses";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportsMultipleUserCodeSet: {
        readonly id: {
            commandClass: (typeof CommandClasses)["User Code"];
            property: "supportsMultipleUserCodeSet";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["User Code"];
            readonly endpoint: number;
            readonly property: "supportsMultipleUserCodeSet";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportsMultipleUserCodeReport: {
        readonly id: {
            commandClass: (typeof CommandClasses)["User Code"];
            property: "supportsMultipleUserCodeReport";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["User Code"];
            readonly endpoint: number;
            readonly property: "supportsMultipleUserCodeReport";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportsUserCodeChecksum: {
        readonly id: {
            commandClass: (typeof CommandClasses)["User Code"];
            property: "supportsUserCodeChecksum";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["User Code"];
            readonly endpoint: number;
            readonly property: "supportsUserCodeChecksum";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    _deprecated_supportsMasterCodeDeactivation: {
        readonly id: {
            commandClass: (typeof CommandClasses)["User Code"];
            property: "supportsMasterCodeDeactivation";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["User Code"];
            readonly endpoint: number;
            readonly property: "supportsMasterCodeDeactivation";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    _deprecated_supportsMasterCode: {
        readonly id: {
            commandClass: (typeof CommandClasses)["User Code"];
            property: "supportsMasterCode";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["User Code"];
            readonly endpoint: number;
            readonly property: "supportsMasterCode";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportsAdminCodeDeactivation: {
        readonly id: {
            commandClass: (typeof CommandClasses)["User Code"];
            property: "supportsAdminCodeDeactivation";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["User Code"];
            readonly endpoint: number;
            readonly property: "supportsAdminCodeDeactivation";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportsAdminCode: {
        readonly id: {
            commandClass: (typeof CommandClasses)["User Code"];
            property: "supportsAdminCode";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["User Code"];
            readonly endpoint: number;
            readonly property: "supportsAdminCode";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    supportedUsers: {
        readonly id: {
            commandClass: (typeof CommandClasses)["User Code"];
            property: "supportedUsers";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["User Code"];
            readonly endpoint: number;
            readonly property: "supportedUsers";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "UserCodeCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum UserCodeCommand {
    // (undocumented)
    AdminCodeGet = 15,
    // (undocumented)
    AdminCodeReport = 16,
    // (undocumented)
    AdminCodeSet = 14,
    // (undocumented)
    CapabilitiesGet = 6,
    // (undocumented)
    CapabilitiesReport = 7,
    // (undocumented)
    ExtendedUserCodeGet = 12,
    // (undocumented)
    ExtendedUserCodeReport = 13,
    // (undocumented)
    ExtendedUserCodeSet = 11,
    // (undocumented)
    Get = 2,
    // (undocumented)
    KeypadModeGet = 9,
    // (undocumented)
    KeypadModeReport = 10,
    // (undocumented)
    KeypadModeSet = 8,
    // (undocumented)
    Report = 3,
    // (undocumented)
    Set = 1,
    // (undocumented)
    UserCodeChecksumGet = 17,
    // (undocumented)
    UserCodeChecksumReport = 18,
    // (undocumented)
    UsersNumberGet = 4,
    // (undocumented)
    UsersNumberReport = 5
}

// Warning: (ae-missing-release-tag) "UserIDStatus" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum UserIDStatus {
    // (undocumented)
    Available = 0,
    // (undocumented)
    Disabled = 2,
    // (undocumented)
    Enabled = 1,
    // (undocumented)
    Messaging = 3,
    // (undocumented)
    PassageMode = 4,
    // (undocumented)
    StatusNotAvailable = 254
}

// Warning: (tsdoc-undefined-tag) The TSDoc tag "@publicAPI" is not defined in this configuration
// Warning: (ae-missing-release-tag) "useSupervision" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public
export const useSupervision: <TTarget extends typeof CommandClass>() => TypedClassDecorator_2<TTarget>;

declare namespace utils {
    export {
        getAssociations,
        getAllAssociations,
        checkAssociation,
        getAssociationGroups,
        getAllAssociationGroups,
        addAssociations,
        removeAssociations,
        getLifelineGroupIds,
        configureLifelineAssociations,
        assignLifelineIssueingCommand,
        doesAnyLifelineSendActuatorOrSensorReports
    }
}
export { utils }

// Warning: (ae-missing-release-tag) "ValueIDProperties" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ValueIDProperties = Pick<ValueID, "property" | "propertyKey">;

// Warning: (ae-missing-release-tag) "ValveId" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type ValveId = "master" | number;

// Warning: (ae-missing-release-tag) "ValveTableEntry" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ValveTableEntry {
    // (undocumented)
    duration: number;
    // (undocumented)
    valveId: number;
}

// Warning: (ae-missing-release-tag) "ValveType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ValveType {
    // (undocumented)
    MasterValve = 1,
    // (undocumented)
    ZoneValve = 0
}

// Warning: (ae-missing-release-tag) "VersionCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class VersionCC extends CommandClass {
    // (undocumented)
    ccCommand: VersionCommand;
    // (undocumented)
    determineRequiredCCInterviews(): readonly CommandClasses[];
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "VersionCCCapabilitiesGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class VersionCCCapabilitiesGet extends VersionCC {
}

// Warning: (ae-missing-release-tag) "VersionCCCapabilitiesReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class VersionCCCapabilitiesReport extends VersionCC {
    constructor(options: WithAddress<VersionCCCapabilitiesReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): VersionCCCapabilitiesReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    supportsZWaveSoftwareGet: boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "VersionCCCapabilitiesReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface VersionCCCapabilitiesReportOptions {
    // (undocumented)
    supportsZWaveSoftwareGet: boolean;
}

// Warning: (ae-missing-release-tag) "VersionCCCommandClassGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class VersionCCCommandClassGet extends VersionCC {
    constructor(options: WithAddress<VersionCCCommandClassGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): VersionCCCommandClassGet;
    // (undocumented)
    requestedCC: CommandClasses;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "VersionCCCommandClassGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface VersionCCCommandClassGetOptions {
    // (undocumented)
    requestedCC: CommandClasses;
}

// Warning: (ae-missing-release-tag) "VersionCCCommandClassReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class VersionCCCommandClassReport extends VersionCC {
    constructor(options: WithAddress<VersionCCCommandClassReportOptions>);
    // (undocumented)
    ccVersion: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): VersionCCCommandClassReport;
    // (undocumented)
    requestedCC: CommandClasses;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "VersionCCCommandClassReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface VersionCCCommandClassReportOptions {
    // (undocumented)
    ccVersion: number;
    // (undocumented)
    requestedCC: CommandClasses;
}

// Warning: (ae-missing-release-tag) "VersionCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class VersionCCGet extends VersionCC {
}

// Warning: (ae-missing-release-tag) "VersionCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class VersionCCReport extends VersionCC {
    constructor(options: WithAddress<VersionCCReportOptions>);
    // (undocumented)
    readonly firmwareVersions: string[];
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): VersionCCReport;
    // (undocumented)
    readonly hardwareVersion: number | undefined;
    // (undocumented)
    readonly libraryType: ZWaveLibraryTypes;
    // (undocumented)
    readonly protocolVersion: string;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
}

// Warning: (ae-missing-release-tag) "VersionCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface VersionCCReportOptions {
    // (undocumented)
    firmwareVersions: string[];
    // (undocumented)
    hardwareVersion?: number;
    // (undocumented)
    libraryType: ZWaveLibraryTypes;
    // (undocumented)
    protocolVersion: string;
}

// Warning: (ae-missing-release-tag) "VersionCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const VersionCCValues: Readonly<{
    applicationBuildNumber: {
        readonly id: {
            commandClass: CommandClasses.Version;
            property: "applicationBuildNumber";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Version;
            readonly endpoint: number;
            readonly property: "applicationBuildNumber";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Application build number";
            readonly writeable: false;
            readonly type: "string";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly autoCreate: true;
            readonly minVersion: 3;
            readonly supportsEndpoints: false;
        };
    };
    applicationVersion: {
        readonly id: {
            commandClass: CommandClasses.Version;
            property: "applicationVersion";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Version;
            readonly endpoint: number;
            readonly property: "applicationVersion";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Application version";
            readonly writeable: false;
            readonly type: "string";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly autoCreate: true;
            readonly minVersion: 3;
            readonly supportsEndpoints: false;
        };
    };
    zWaveProtocolBuildNumber: {
        readonly id: {
            commandClass: CommandClasses.Version;
            property: "zWaveProtocolBuildNumber";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Version;
            readonly endpoint: number;
            readonly property: "zWaveProtocolBuildNumber";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Z-Wave protocol build number";
            readonly writeable: false;
            readonly type: "string";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly autoCreate: true;
            readonly minVersion: 3;
            readonly supportsEndpoints: false;
        };
    };
    zWaveProtocolVersion: {
        readonly id: {
            commandClass: CommandClasses.Version;
            property: "zWaveProtocolVersion";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Version;
            readonly endpoint: number;
            readonly property: "zWaveProtocolVersion";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Z-Wave protocol version";
            readonly writeable: false;
            readonly type: "string";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly autoCreate: true;
            readonly minVersion: 3;
            readonly supportsEndpoints: false;
        };
    };
    serialAPIBuildNumber: {
        readonly id: {
            commandClass: CommandClasses.Version;
            property: "hostInterfaceBuildNumber";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Version;
            readonly endpoint: number;
            readonly property: "hostInterfaceBuildNumber";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Serial API build number";
            readonly writeable: false;
            readonly type: "string";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly autoCreate: true;
            readonly minVersion: 3;
            readonly supportsEndpoints: false;
        };
    };
    serialAPIVersion: {
        readonly id: {
            commandClass: CommandClasses.Version;
            property: "hostInterfaceVersion";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Version;
            readonly endpoint: number;
            readonly property: "hostInterfaceVersion";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Serial API version";
            readonly writeable: false;
            readonly type: "string";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly autoCreate: true;
            readonly minVersion: 3;
            readonly supportsEndpoints: false;
        };
    };
    applicationFrameworkBuildNumber: {
        readonly id: {
            commandClass: CommandClasses.Version;
            property: "applicationFrameworkBuildNumber";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Version;
            readonly endpoint: number;
            readonly property: "applicationFrameworkBuildNumber";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Z-Wave application framework API build number";
            readonly writeable: false;
            readonly type: "string";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly autoCreate: true;
            readonly minVersion: 3;
            readonly supportsEndpoints: false;
        };
    };
    applicationFrameworkAPIVersion: {
        readonly id: {
            commandClass: CommandClasses.Version;
            property: "applicationFrameworkAPIVersion";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Version;
            readonly endpoint: number;
            readonly property: "applicationFrameworkAPIVersion";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Z-Wave application framework API version";
            readonly writeable: false;
            readonly type: "string";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly autoCreate: true;
            readonly minVersion: 3;
            readonly supportsEndpoints: false;
        };
    };
    sdkVersion: {
        readonly id: {
            commandClass: CommandClasses.Version;
            property: "sdkVersion";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Version;
            readonly endpoint: number;
            readonly property: "sdkVersion";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "SDK version";
            readonly writeable: false;
            readonly type: "string";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly autoCreate: true;
            readonly minVersion: 3;
            readonly supportsEndpoints: false;
        };
    };
    supportsZWaveSoftwareGet: {
        readonly id: {
            commandClass: CommandClasses.Version;
            property: "supportsZWaveSoftwareGet";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Version;
            readonly endpoint: number;
            readonly property: "supportsZWaveSoftwareGet";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly minVersion: 3;
            readonly internal: true;
        };
    };
    hardwareVersion: {
        readonly id: {
            commandClass: CommandClasses.Version;
            property: "hardwareVersion";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Version;
            readonly endpoint: number;
            readonly property: "hardwareVersion";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Z-Wave chip hardware version";
            readonly writeable: false;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly autoCreate: true;
            readonly minVersion: 2;
            readonly supportsEndpoints: false;
        };
    };
    protocolVersion: {
        readonly id: {
            commandClass: CommandClasses.Version;
            property: "protocolVersion";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Version;
            readonly endpoint: number;
            readonly property: "protocolVersion";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Z-Wave protocol version";
            readonly writeable: false;
            readonly type: "string";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly supportsEndpoints: false;
        };
    };
    libraryType: {
        readonly id: {
            commandClass: CommandClasses.Version;
            property: "libraryType";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Version;
            readonly endpoint: number;
            readonly property: "libraryType";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Library type";
            readonly states: {
                [x: number]: string;
            };
            readonly writeable: false;
            readonly type: "number";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly supportsEndpoints: false;
        };
    };
    firmwareVersions: {
        readonly id: {
            commandClass: CommandClasses.Version;
            property: "firmwareVersions";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: CommandClasses.Version;
            readonly endpoint: number;
            readonly property: "firmwareVersions";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "string[]";
            readonly label: "Z-Wave chip firmware versions";
            readonly writeable: false;
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly supportsEndpoints: false;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "VersionCCZWaveSoftwareGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class VersionCCZWaveSoftwareGet extends VersionCC {
}

// Warning: (ae-missing-release-tag) "VersionCCZWaveSoftwareReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class VersionCCZWaveSoftwareReport extends VersionCC {
    constructor(options: WithAddress<VersionCCZWaveSoftwareReportOptions>);
    // (undocumented)
    readonly applicationBuildNumber: number;
    // (undocumented)
    readonly applicationFrameworkAPIVersion: string;
    // (undocumented)
    readonly applicationFrameworkBuildNumber: number;
    // (undocumented)
    readonly applicationVersion: string;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): VersionCCZWaveSoftwareReport;
    // (undocumented)
    readonly hostInterfaceBuildNumber: number;
    // (undocumented)
    readonly hostInterfaceVersion: string;
    // (undocumented)
    readonly sdkVersion: string;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    readonly zWaveProtocolBuildNumber: number;
    // (undocumented)
    readonly zWaveProtocolVersion: string;
}

// Warning: (ae-missing-release-tag) "VersionCCZWaveSoftwareReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface VersionCCZWaveSoftwareReportOptions {
    // (undocumented)
    applicationBuildNumber: number;
    // (undocumented)
    applicationFrameworkAPIVersion: string;
    // (undocumented)
    applicationFrameworkBuildNumber: number;
    // (undocumented)
    applicationVersion: string;
    // (undocumented)
    hostInterfaceBuildNumber: number;
    // (undocumented)
    hostInterfaceVersion: string;
    // (undocumented)
    sdkVersion: string;
    // (undocumented)
    zWaveProtocolBuildNumber: number;
    // (undocumented)
    zWaveProtocolVersion: string;
}

// Warning: (ae-missing-release-tag) "VersionCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum VersionCommand {
    // (undocumented)
    CapabilitiesGet = 21,
    // (undocumented)
    CapabilitiesReport = 22,
    // (undocumented)
    CommandClassGet = 19,
    // (undocumented)
    CommandClassReport = 20,
    // (undocumented)
    Get = 17,
    // (undocumented)
    Report = 18,
    // (undocumented)
    ZWaveSoftwareGet = 23,
    // (undocumented)
    ZWaveSoftwareReport = 24
}

// Warning: (ae-missing-release-tag) "VirtualCCAPIEndpoint" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type VirtualCCAPIEndpoint = CCAPIEndpoint & VirtualEndpointId;

// Warning: (ae-missing-release-tag) "WakeUpCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class WakeUpCC extends CommandClass {
    // (undocumented)
    ccCommand: WakeUpCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "WakeUpCCIntervalCapabilitiesGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class WakeUpCCIntervalCapabilitiesGet extends WakeUpCC {
}

// Warning: (ae-missing-release-tag) "WakeUpCCIntervalCapabilitiesReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class WakeUpCCIntervalCapabilitiesReport extends WakeUpCC {
    constructor(options: WithAddress<WakeUpCCIntervalCapabilitiesReportOptions>);
    // (undocumented)
    readonly defaultWakeUpInterval: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): WakeUpCCIntervalCapabilitiesReport;
    // (undocumented)
    readonly maxWakeUpInterval: number;
    // (undocumented)
    readonly minWakeUpInterval: number;
    // (undocumented)
    persistValues(ctx: PersistValuesContext): boolean;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    readonly wakeUpIntervalSteps: number;
    // (undocumented)
    readonly wakeUpOnDemandSupported: boolean;
}

// Warning: (ae-missing-release-tag) "WakeUpCCIntervalCapabilitiesReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface WakeUpCCIntervalCapabilitiesReportOptions {
    // (undocumented)
    defaultWakeUpInterval: number;
    // (undocumented)
    maxWakeUpInterval: number;
    // (undocumented)
    minWakeUpInterval: number;
    // (undocumented)
    wakeUpIntervalSteps: number;
    // (undocumented)
    wakeUpOnDemandSupported: boolean;
}

// Warning: (ae-missing-release-tag) "WakeUpCCIntervalGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class WakeUpCCIntervalGet extends WakeUpCC {
}

// Warning: (ae-missing-release-tag) "WakeUpCCIntervalReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class WakeUpCCIntervalReport extends WakeUpCC {
    constructor(options: WithAddress<WakeUpCCIntervalReportOptions>);
    // (undocumented)
    readonly controllerNodeId: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): WakeUpCCIntervalReport;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    readonly wakeUpInterval: number;
}

// Warning: (ae-missing-release-tag) "WakeUpCCIntervalReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface WakeUpCCIntervalReportOptions {
    // (undocumented)
    controllerNodeId: number;
    // (undocumented)
    wakeUpInterval: number;
}

// Warning: (ae-missing-release-tag) "WakeUpCCIntervalSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class WakeUpCCIntervalSet extends WakeUpCC {
    constructor(options: WithAddress<WakeUpCCIntervalSetOptions>);
    // (undocumented)
    controllerNodeId: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): WakeUpCCIntervalSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    wakeUpInterval: number;
}

// Warning: (ae-missing-release-tag) "WakeUpCCIntervalSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface WakeUpCCIntervalSetOptions {
    // (undocumented)
    controllerNodeId: number;
    // (undocumented)
    wakeUpInterval: number;
}

// Warning: (ae-missing-release-tag) "WakeUpCCNoMoreInformation" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class WakeUpCCNoMoreInformation extends WakeUpCC {
}

// Warning: (ae-missing-release-tag) "WakeUpCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const WakeUpCCValues: Readonly<{
    wakeUpOnDemandSupported: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Wake Up"];
            property: "wakeUpOnDemandSupported";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Wake Up"];
            readonly endpoint: number;
            readonly property: "wakeUpOnDemandSupported";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly autoCreate: true;
            readonly internal: true;
            readonly supportsEndpoints: false;
            readonly minVersion: number;
        };
    };
    wakeUpInterval: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Wake Up"];
            property: "wakeUpInterval";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Wake Up"];
            readonly endpoint: number;
            readonly property: "wakeUpInterval";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Wake Up interval";
            readonly min: 0;
            readonly max: 16777215;
            readonly type: "number";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly supportsEndpoints: false;
        };
    };
    controllerNodeId: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Wake Up"];
            property: "controllerNodeId";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Wake Up"];
            readonly endpoint: number;
            readonly property: "controllerNodeId";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly label: "Node ID of the controller";
            readonly writeable: false;
            readonly type: "any";
            readonly readable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly internal: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly supportsEndpoints: false;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "WakeUpCCWakeUpNotification" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class WakeUpCCWakeUpNotification extends WakeUpCC {
}

// Warning: (ae-missing-release-tag) "WakeUpCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum WakeUpCommand {
    // (undocumented)
    IntervalCapabilitiesGet = 9,
    // (undocumented)
    IntervalCapabilitiesReport = 10,
    // (undocumented)
    IntervalGet = 5,
    // (undocumented)
    IntervalReport = 6,
    // (undocumented)
    IntervalSet = 4,
    // (undocumented)
    NoMoreInformation = 8,
    // (undocumented)
    WakeUpNotification = 7
}

// Warning: (ae-missing-release-tag) "WakeUpTime" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum WakeUpTime {
    // (undocumented)
    "1000ms" = 1,
    // (undocumented)
    "250ms" = 2,
    // (undocumented)
    None = 0
}

// Warning: (ae-missing-release-tag) "wakeUpTime2FLiRS" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function wakeUpTime2FLiRS(value: WakeUpTime): FLiRS_2;

// Warning: (ae-missing-release-tag) "Weekday" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum Weekday {
    // (undocumented)
    Friday = 5,
    // (undocumented)
    Monday = 1,
    // (undocumented)
    Saturday = 6,
    // (undocumented)
    Sunday = 7,
    // (undocumented)
    Thursday = 4,
    // (undocumented)
    Tuesday = 2,
    // (undocumented)
    Unknown = 0,
    // (undocumented)
    Wednesday = 3
}

// Warning: (ae-missing-release-tag) "WindowCoveringCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class WindowCoveringCC extends CommandClass {
    // (undocumented)
    ccCommand: WindowCoveringCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
    // (undocumented)
    translatePropertyKey(ctx: GetValueDB, property: string | number, propertyKey: string | number): string | undefined;
}

// Warning: (ae-missing-release-tag) "WindowCoveringCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class WindowCoveringCCGet extends WindowCoveringCC {
    constructor(options: WithAddress_2<WindowCoveringCCGetOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCGet;
    // (undocumented)
    parameter: WindowCoveringParameter;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "WindowCoveringCCGetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface WindowCoveringCCGetOptions {
    // (undocumented)
    parameter: WindowCoveringParameter;
}

// Warning: (ae-missing-release-tag) "WindowCoveringCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class WindowCoveringCCReport extends WindowCoveringCC {
    constructor(options: WithAddress_2<WindowCoveringCCReportOptions>);
    // (undocumented)
    readonly currentValue: number;
    // (undocumented)
    readonly duration: Duration_2;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCReport;
    // (undocumented)
    readonly parameter: WindowCoveringParameter;
    // (undocumented)
    readonly targetValue: number;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "WindowCoveringCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface WindowCoveringCCReportOptions {
    // (undocumented)
    currentValue: number;
    // (undocumented)
    duration: Duration_2;
    // (undocumented)
    parameter: WindowCoveringParameter;
    // (undocumented)
    targetValue: number;
}

// Warning: (ae-missing-release-tag) "WindowCoveringCCSet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class WindowCoveringCCSet extends WindowCoveringCC {
    constructor(options: WithAddress_2<WindowCoveringCCSetOptions>);
    // (undocumented)
    duration: Duration_2 | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCSet;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
    // (undocumented)
    targetValues: {
        parameter: WindowCoveringParameter;
        value: number;
    }[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "WindowCoveringCCSetOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface WindowCoveringCCSetOptions {
    // (undocumented)
    duration?: Duration_2 | string;
    // (undocumented)
    targetValues: {
        parameter: WindowCoveringParameter;
        value: number;
    }[];
}

// Warning: (ae-missing-release-tag) "WindowCoveringCCStartLevelChange" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class WindowCoveringCCStartLevelChange extends WindowCoveringCC {
    constructor(options: WithAddress_2<WindowCoveringCCStartLevelChangeOptions>);
    // (undocumented)
    direction: keyof typeof LevelChangeDirection;
    // (undocumented)
    duration: Duration_2 | undefined;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCStartLevelChange;
    // (undocumented)
    parameter: WindowCoveringParameter;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "WindowCoveringCCStartLevelChangeOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface WindowCoveringCCStartLevelChangeOptions {
    // (undocumented)
    direction: keyof typeof LevelChangeDirection;
    // (undocumented)
    duration?: Duration_2 | string;
    // (undocumented)
    parameter: WindowCoveringParameter;
}

// Warning: (ae-missing-release-tag) "WindowCoveringCCStopLevelChange" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class WindowCoveringCCStopLevelChange extends WindowCoveringCC {
    constructor(options: WithAddress_2<WindowCoveringCCStopLevelChangeOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCStopLevelChange;
    // (undocumented)
    parameter: WindowCoveringParameter;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "WindowCoveringCCStopLevelChangeOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface WindowCoveringCCStopLevelChangeOptions {
    // (undocumented)
    parameter: WindowCoveringParameter;
}

// Warning: (ae-missing-release-tag) "WindowCoveringCCSupportedGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class WindowCoveringCCSupportedGet extends WindowCoveringCC {
}

// Warning: (ae-missing-release-tag) "WindowCoveringCCSupportedReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class WindowCoveringCCSupportedReport extends WindowCoveringCC {
    constructor(options: WithAddress_2<WindowCoveringCCSupportedReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): WindowCoveringCCSupportedReport;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
    // (undocumented)
    readonly supportedParameters: readonly WindowCoveringParameter[];
    // (undocumented)
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}

// Warning: (ae-missing-release-tag) "WindowCoveringCCSupportedReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface WindowCoveringCCSupportedReportOptions {
    // (undocumented)
    supportedParameters: readonly WindowCoveringParameter[];
}

// Warning: (ae-missing-release-tag) "WindowCoveringCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const WindowCoveringCCValues: Readonly<{
    levelChangeDown: ((parameter: WindowCoveringParameter) => {
        readonly meta: {
            readonly label: `${string} - ${string}`;
            readonly valueChangeOptions: readonly ["transitionDuration"];
            readonly states: {
                readonly true: "Start";
                readonly false: "Stop";
            };
            readonly ccSpecific: {
                readonly parameter: WindowCoveringParameter;
            };
            readonly readable: false;
            readonly type: "boolean";
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Window Covering"];
            property: "levelChangeDown";
            propertyKey: WindowCoveringParameter;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Window Covering"];
            readonly endpoint: number;
            readonly property: "levelChangeDown";
            readonly propertyKey: WindowCoveringParameter;
        };
    }) & {
        is: (valueId: ValueID) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    levelChangeUp: ((parameter: WindowCoveringParameter) => {
        readonly meta: {
            readonly label: `${string} - ${string}`;
            readonly valueChangeOptions: readonly ["transitionDuration"];
            readonly states: {
                readonly true: "Start";
                readonly false: "Stop";
            };
            readonly ccSpecific: {
                readonly parameter: WindowCoveringParameter;
            };
            readonly readable: false;
            readonly type: "boolean";
            readonly writeable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Window Covering"];
            property: "levelChangeUp";
            propertyKey: WindowCoveringParameter;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Window Covering"];
            readonly endpoint: number;
            readonly property: "levelChangeUp";
            readonly propertyKey: WindowCoveringParameter;
        };
    }) & {
        is: (valueId: ValueID) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    duration: ((parameter: WindowCoveringParameter) => {
        readonly meta: {
            readonly label: `Remaining duration - ${string}`;
            readonly ccSpecific: {
                readonly parameter: WindowCoveringParameter;
            };
            readonly writeable: false;
            readonly type: "duration";
            readonly readable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Window Covering"];
            property: "duration";
            propertyKey: WindowCoveringParameter;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Window Covering"];
            readonly endpoint: number;
            readonly property: "duration";
            readonly propertyKey: WindowCoveringParameter;
        };
    }) & {
        is: (valueId: ValueID) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    targetValue: ((parameter: WindowCoveringParameter) => {
        readonly meta: {
            readonly label: `Target value - ${string}`;
            readonly writeable: boolean;
            readonly states: {
                [x: number]: string;
            };
            readonly allowManualEntry: boolean;
            readonly ccSpecific: {
                readonly parameter: WindowCoveringParameter;
            };
            readonly valueChangeOptions: readonly ["transitionDuration"];
            readonly max: 99;
            readonly min: 0;
            readonly type: "number";
            readonly readable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Window Covering"];
            property: "targetValue";
            propertyKey: WindowCoveringParameter;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Window Covering"];
            readonly endpoint: number;
            readonly property: "targetValue";
            readonly propertyKey: WindowCoveringParameter;
        };
    }) & {
        is: (valueId: ValueID) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    currentValue: ((parameter: WindowCoveringParameter) => {
        readonly meta: {
            readonly label: `Current value - ${string}`;
            readonly states: {
                [x: number]: string;
            };
            readonly ccSpecific: {
                readonly parameter: WindowCoveringParameter;
            };
            readonly writeable: false;
            readonly max: 99;
            readonly min: 0;
            readonly type: "number";
            readonly readable: true;
        };
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Window Covering"];
            property: "currentValue";
            propertyKey: WindowCoveringParameter;
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Window Covering"];
            readonly endpoint: number;
            readonly property: "currentValue";
            readonly propertyKey: WindowCoveringParameter;
        };
    }) & {
        is: (valueId: ValueID) => boolean;
        readonly options: {
            readonly internal: false;
            readonly minVersion: 1;
            readonly secret: false;
            readonly stateful: true;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
        };
    };
    supportedParameters: {
        readonly id: {
            commandClass: (typeof CommandClasses_2)["Window Covering"];
            property: "supportedParameters";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses_2)["Window Covering"];
            readonly endpoint: number;
            readonly property: "supportedParameters";
        };
        readonly is: (valueId: ValueID) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "WindowCoveringCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum WindowCoveringCommand {
    // (undocumented)
    Get = 3,
    // (undocumented)
    Report = 4,
    // (undocumented)
    Set = 5,
    // (undocumented)
    StartLevelChange = 6,
    // (undocumented)
    StopLevelChange = 7,
    // (undocumented)
    SupportedGet = 1,
    // (undocumented)
    SupportedReport = 2
}

// Warning: (ae-missing-release-tag) "WindowCoveringParameter" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum WindowCoveringParameter {
    // (undocumented)
    "Horizontal Slats Angle (no position)" = 22,
    // (undocumented)
    "Horizontal Slats Angle" = 23,
    // (undocumented)
    "Inbound Bottom (no position)" = 16,
    // (undocumented)
    "Inbound Bottom" = 17,
    // (undocumented)
    "Inbound Left (no position)" = 4,
    // (undocumented)
    "Inbound Left" = 5,
    // (undocumented)
    "Inbound Left/Right (no position)" = 8,
    // (undocumented)
    "Inbound Left/Right" = 9,
    // (undocumented)
    "Inbound Right (no position)" = 6,
    // (undocumented)
    "Inbound Right" = 7,
    // (undocumented)
    "Inbound Top (no position)" = 18,
    // (undocumented)
    "Inbound Top" = 19,
    // (undocumented)
    "Inbound Top/Bottom (no position)" = 20,
    // (undocumented)
    "Inbound Top/Bottom" = 21,
    // (undocumented)
    "Outbound Bottom (no position)" = 12,
    // (undocumented)
    "Outbound Bottom" = 13,
    // (undocumented)
    "Outbound Left (no position)" = 0,
    // (undocumented)
    "Outbound Left" = 1,
    // (undocumented)
    "Outbound Right (no position)" = 2,
    // (undocumented)
    "Outbound Right" = 3,
    // (undocumented)
    "Outbound Top (no position)" = 14,
    // (undocumented)
    "Outbound Top" = 15,
    // (undocumented)
    "Vertical Slats Angle (no position)" = 10,
    // (undocumented)
    "Vertical Slats Angle" = 11
}

// Warning: (ae-missing-release-tag) "WithTXReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type WithTXReport<API extends CCAPI> = Omit<API, keyof OwnMethodsOf<API> | "withOptions" | "withTXReport" | "setValue"> & {
    [K in keyof OwnMethodsOf<API> | "setValue" | "pollValue"]: ReturnWithTXReport<API[K]>;
};

// Warning: (ae-missing-release-tag) "WrapWithTXReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export type WrapWithTXReport<T> = [T] extends [Promise<infer U>] ? Promise<WrapWithTXReport<U>> : [T] extends [void] ? {
    txReport: TXReport | undefined;
} : {
    result: T;
    txReport: TXReport | undefined;
};

// Warning: (ae-missing-release-tag) "ZWaveDataRate2DataRate" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export function ZWaveDataRate2DataRate(zdr: ZWaveDataRate_2): DataRate_2;

// Warning: (ae-missing-release-tag) "ZWaveLongRangeCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveLongRangeCC extends CommandClass {
}

// Warning: (ae-missing-release-tag) "ZWavePlusCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWavePlusCC extends CommandClass {
    // (undocumented)
    ccCommand: ZWavePlusCommand;
    // (undocumented)
    interview(ctx: InterviewContext): Promise<void>;
}

// Warning: (ae-missing-release-tag) "ZWavePlusCCGet" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWavePlusCCGet extends ZWavePlusCC {
}

// Warning: (ae-missing-release-tag) "ZWavePlusCCReport" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWavePlusCCReport extends ZWavePlusCC {
    constructor(options: WithAddress<ZWavePlusCCReportOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext_2): ZWavePlusCCReport;
    // (undocumented)
    installerIcon: number;
    // (undocumented)
    nodeType: ZWavePlusNodeType;
    // (undocumented)
    roleType: ZWavePlusRoleType;
    // (undocumented)
    serialize(ctx: CCEncodingContext_2): Bytes;
    // (undocumented)
    toLogEntry(ctx?: GetValueDB_2): MessageOrCCLogEntry_2;
    // (undocumented)
    userIcon: number;
    // (undocumented)
    zwavePlusVersion: number;
}

// Warning: (ae-missing-release-tag) "ZWavePlusCCReportOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWavePlusCCReportOptions {
    // (undocumented)
    installerIcon: number;
    // (undocumented)
    nodeType: ZWavePlusNodeType;
    // (undocumented)
    roleType: ZWavePlusRoleType;
    // (undocumented)
    userIcon: number;
    // (undocumented)
    zwavePlusVersion: number;
}

// Warning: (ae-missing-release-tag) "ZWavePlusCCValues" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export const ZWavePlusCCValues: Readonly<{
    installerIcon: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Z-Wave Plus Info"];
            property: "installerIcon";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Z-Wave Plus Info"];
            readonly endpoint: number;
            readonly property: "installerIcon";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    userIcon: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Z-Wave Plus Info"];
            property: "userIcon";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Z-Wave Plus Info"];
            readonly endpoint: number;
            readonly property: "userIcon";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly supportsEndpoints: true;
            readonly autoCreate: true;
            readonly internal: true;
        };
    };
    roleType: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Z-Wave Plus Info"];
            property: "roleType";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Z-Wave Plus Info"];
            readonly endpoint: number;
            readonly property: "roleType";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly supportsEndpoints: false;
            readonly internal: true;
        };
    };
    nodeType: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Z-Wave Plus Info"];
            property: "nodeType";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Z-Wave Plus Info"];
            readonly endpoint: number;
            readonly property: "nodeType";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly supportsEndpoints: false;
            readonly internal: true;
        };
    };
    zwavePlusVersion: {
        readonly id: {
            commandClass: (typeof CommandClasses)["Z-Wave Plus Info"];
            property: "zwavePlusVersion";
        };
        readonly endpoint: (endpoint?: number | undefined) => {
            readonly commandClass: (typeof CommandClasses)["Z-Wave Plus Info"];
            readonly endpoint: number;
            readonly property: "zwavePlusVersion";
        };
        readonly is: (valueId: ValueID_2) => boolean;
        readonly meta: {
            readonly type: "any";
            readonly readable: true;
            readonly writeable: true;
        };
        readonly options: {
            readonly stateful: true;
            readonly secret: false;
            readonly minVersion: 1;
            readonly autoCreate: true;
            readonly supportsEndpoints: false;
            readonly internal: true;
        };
    };
}>;

// Warning: (ae-missing-release-tag) "ZWavePlusCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ZWavePlusCommand {
    // (undocumented)
    Get = 1,
    // (undocumented)
    Report = 2
}

// Warning: (ae-missing-release-tag) "ZWavePlusNodeType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ZWavePlusNodeType {
    // (undocumented)
    IPGateway = 2,// ZWave+ Node
    // (undocumented)
    Node = 0
}

// Warning: (ae-missing-release-tag) "ZWavePlusRoleType" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ZWavePlusRoleType {
    // (undocumented)
    AlwaysOnSlave = 5,
    // (undocumented)
    CentralStaticController = 0,
    // (undocumented)
    NetworkAwareSlave = 8,
    // (undocumented)
    PortableController = 2,
    // (undocumented)
    PortableReportingController = 3,
    // (undocumented)
    PortableSlave = 4,
    // (undocumented)
    SleepingListeningSlave = 7,
    // (undocumented)
    SleepingReportingSlave = 6,
    // (undocumented)
    SubStaticController = 1
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCC extends CommandClass {
    // (undocumented)
    ccCommand: ZWaveProtocolCommand;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCAcceptLost" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCAcceptLost extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCAcceptLostOptions>);
    // (undocumented)
    accepted: boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCAcceptLost;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCAcceptLostOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCAcceptLostOptions {
    // (undocumented)
    accepted: boolean;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCAssignIDs" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCAssignIDs extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCAssignIDsOptions>);
    // (undocumented)
    assignedNodeId: number;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCAssignIDs;
    // (undocumented)
    homeId: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCAssignIDsOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCAssignIDsOptions {
    // (undocumented)
    assignedNodeId: number;
    // (undocumented)
    homeId: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCAssignReturnRoute" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCAssignReturnRoute extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCAssignReturnRouteOptions>);
    // (undocumented)
    destinationNodeId: number;
    // (undocumented)
    destinationSpeed: ZWaveDataRate;
    // (undocumented)
    destinationWakeUp: WakeUpTime;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCAssignReturnRoute;
    // (undocumented)
    repeaters: number[];
    // (undocumented)
    routeIndex: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCAssignReturnRouteOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCAssignReturnRouteOptions {
    // (undocumented)
    destinationNodeId: number;
    // (undocumented)
    destinationSpeed: ZWaveDataRate;
    // (undocumented)
    destinationWakeUp: WakeUpTime;
    // (undocumented)
    repeaters: number[];
    // (undocumented)
    routeIndex: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCAssignReturnRoutePriority" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCAssignReturnRoutePriority extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCAssignReturnRoutePriorityOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCAssignReturnRoutePriority;
    // (undocumented)
    routeNumber: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
    // (undocumented)
    targetNodeId: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCAssignReturnRoutePriorityOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCAssignReturnRoutePriorityOptions {
    // (undocumented)
    routeNumber: number;
    // (undocumented)
    targetNodeId: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCAssignSUCReturnRoute" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCAssignSUCReturnRoute extends ZWaveProtocolCCAssignReturnRoute {
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCAssignSUCReturnRoutePriority" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCAssignSUCReturnRoutePriority extends ZWaveProtocolCCAssignReturnRoutePriority {
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCAutomaticControllerUpdateStart" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCAutomaticControllerUpdateStart extends ZWaveProtocolCC {
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCCommandComplete" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCCommandComplete extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCCommandCompleteOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCCommandComplete;
    // (undocumented)
    sequenceNumber: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCCommandCompleteOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCCommandCompleteOptions {
    // (undocumented)
    sequenceNumber: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCExcludeRequest" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCExcludeRequest extends ZWaveProtocolCCNodeInformationFrame {
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCFindNodesInRange" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCFindNodesInRange extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCFindNodesInRangeOptions>);
    // (undocumented)
    candidateNodeIds: number[];
    // (undocumented)
    dataRate: ZWaveDataRate;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCFindNodesInRange;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
    // (undocumented)
    wakeUpTime: WakeUpTime;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCFindNodesInRangeOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCFindNodesInRangeOptions {
    // (undocumented)
    candidateNodeIds: number[];
    // (undocumented)
    dataRate?: ZWaveDataRate;
    // (undocumented)
    wakeUpTime: WakeUpTime;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCGetNodesInRange" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCGetNodesInRange extends ZWaveProtocolCC {
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCLost" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCLost extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCLostOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCLost;
    // (undocumented)
    lostNodeId: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCLostOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCLostOptions {
    // (undocumented)
    lostNodeId: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCNewNodeRegistered" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCNewNodeRegistered extends ZWaveProtocolCC implements NodeInformationFrame {
    constructor(options: WithAddress_2<ZWaveProtocolCCNewNodeRegisteredOptions>);
    // (undocumented)
    basicDeviceClass: BasicDeviceClass;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCNewNodeRegistered;
    // (undocumented)
    genericDeviceClass: number;
    // (undocumented)
    isFrequentListening: FLiRS;
    // (undocumented)
    isListening: boolean;
    // (undocumented)
    isRouting: boolean;
    // (undocumented)
    newNodeId: number;
    // (undocumented)
    nodeType: NodeType;
    // (undocumented)
    optionalFunctionality: boolean;
    // (undocumented)
    protocolVersion: ProtocolVersion;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
    // (undocumented)
    specificDeviceClass: number;
    // (undocumented)
    supportedCCs: CommandClasses_2[];
    // (undocumented)
    supportedDataRates: DataRate[];
    // (undocumented)
    supportsBeaming: boolean;
    // (undocumented)
    supportsSecurity: boolean;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCNewNodeRegisteredOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCNewNodeRegisteredOptions extends NodeInformationFrame {
    // (undocumented)
    newNodeId: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCNewRangeRegistered" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCNewRangeRegistered extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCNewRangeRegisteredOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCNewRangeRegistered;
    // (undocumented)
    neighborNodeIds: number[];
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
    // (undocumented)
    testedNodeId: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCNewRangeRegisteredOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCNewRangeRegisteredOptions {
    // (undocumented)
    neighborNodeIds: number[];
    // (undocumented)
    testedNodeId: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCNodeInformationFrame" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCNodeInformationFrame extends ZWaveProtocolCC implements NodeInformationFrame {
    constructor(options: WithAddress_2<ZWaveProtocolCCNodeInformationFrameOptions>);
    // (undocumented)
    basicDeviceClass: BasicDeviceClass;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCNodeInformationFrame;
    // (undocumented)
    genericDeviceClass: number;
    // (undocumented)
    isFrequentListening: FLiRS;
    // (undocumented)
    isListening: boolean;
    // (undocumented)
    isRouting: boolean;
    // (undocumented)
    nodeType: NodeType;
    // (undocumented)
    optionalFunctionality: boolean;
    // (undocumented)
    protocolVersion: ProtocolVersion;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
    // (undocumented)
    specificDeviceClass: number;
    // (undocumented)
    supportedCCs: CommandClasses_2[];
    // (undocumented)
    supportedDataRates: DataRate[];
    // (undocumented)
    supportsBeaming: boolean;
    // (undocumented)
    supportsSecurity: boolean;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCNodeInformationFrameOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCNodeInformationFrameOptions extends NodeInformationFrame {
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCNodesExist" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCNodesExist extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCNodesExistOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCNodesExist;
    // (undocumented)
    nodeIDs: number[];
    // (undocumented)
    nodeMaskType: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCNodesExistOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCNodesExistOptions {
    // (undocumented)
    nodeIDs: number[];
    // (undocumented)
    nodeMaskType: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCNodesExistReply" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCNodesExistReply extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCNodesExistReplyOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCNodesExistReply;
    // (undocumented)
    nodeListUpdated: boolean;
    // (undocumented)
    nodeMaskType: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCNodesExistReplyOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCNodesExistReplyOptions {
    // (undocumented)
    nodeListUpdated: boolean;
    // (undocumented)
    nodeMaskType: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCNOPPower" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCNOPPower extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCNOPPowerOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCNOPPower;
    // (undocumented)
    powerDampening: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCNOPPowerOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCNOPPowerOptions {
    // (undocumented)
    powerDampening: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCRangeInfo" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCRangeInfo extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCRangeInfoOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCRangeInfo;
    // (undocumented)
    neighborNodeIds: number[];
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
    // (undocumented)
    wakeUpTime?: WakeUpTime;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCRangeInfoOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCRangeInfoOptions {
    // (undocumented)
    neighborNodeIds: number[];
    // (undocumented)
    wakeUpTime?: WakeUpTime;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCRequestNodeInformationFrame" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCRequestNodeInformationFrame extends ZWaveProtocolCC {
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCReservedIDs" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCReservedIDs extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCReservedIDsOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCReservedIDs;
    // (undocumented)
    reservedNodeIDs: number[];
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCReservedIDsOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCReservedIDsOptions {
    // (undocumented)
    reservedNodeIDs: number[];
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCReserveNodeIDs" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCReserveNodeIDs extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCReserveNodeIDsOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCReserveNodeIDs;
    // (undocumented)
    numNodeIDs: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCReserveNodeIDsOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCReserveNodeIDsOptions {
    // (undocumented)
    numNodeIDs: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCSetNWIMode" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCSetNWIMode extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCSetNWIModeOptions>);
    // (undocumented)
    enabled: boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCSetNWIMode;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
    // (undocumented)
    timeoutMinutes?: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCSetNWIModeOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCSetNWIModeOptions {
    // (undocumented)
    enabled: boolean;
    // (undocumented)
    timeoutMinutes?: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCSetSUC" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCSetSUC extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCSetSUCOptions>);
    // (undocumented)
    enableSIS: boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCSetSUC;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCSetSUCAck" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCSetSUCAck extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCSetSUCAckOptions>);
    // (undocumented)
    accepted: boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCSetSUCAck;
    // (undocumented)
    isSIS: boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCSetSUCAckOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCSetSUCAckOptions {
    // (undocumented)
    accepted: boolean;
    // (undocumented)
    isSIS: boolean;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCSetSUCOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCSetSUCOptions {
    // (undocumented)
    enableSIS: boolean;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCSmartStartIncludedNodeInformation" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCSmartStartIncludedNodeInformation extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCSmartStartIncludedNodeInformationOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCSmartStartIncludedNodeInformation;
    // (undocumented)
    nwiHomeId: Uint8Array;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCSmartStartIncludedNodeInformationOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCSmartStartIncludedNodeInformationOptions {
    // (undocumented)
    nwiHomeId: Uint8Array;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCSmartStartInclusionRequest" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCSmartStartInclusionRequest extends ZWaveProtocolCCNodeInformationFrame {
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCSmartStartPrime" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCSmartStartPrime extends ZWaveProtocolCCNodeInformationFrame {
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCStaticRouteRequest" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCStaticRouteRequest extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCStaticRouteRequestOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCStaticRouteRequest;
    // (undocumented)
    nodeIds: number[];
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCStaticRouteRequestOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCStaticRouteRequestOptions {
    // (undocumented)
    nodeIds: number[];
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCSUCNodeID" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCSUCNodeID extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCSUCNodeIDOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCSUCNodeID;
    // (undocumented)
    isSIS: boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
    // (undocumented)
    sucNodeId: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCSUCNodeIDOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCSUCNodeIDOptions {
    // (undocumented)
    isSIS: boolean;
    // (undocumented)
    sucNodeId: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCTransferEnd" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCTransferEnd extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCTransferEndOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCTransferEnd;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
    // (undocumented)
    status: NetworkTransferStatus;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCTransferEndOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCTransferEndOptions {
    // (undocumented)
    status: NetworkTransferStatus;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCTransferNewPrimaryControllerComplete" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCTransferNewPrimaryControllerComplete extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCTransferNewPrimaryControllerCompleteOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCTransferNewPrimaryControllerComplete;
    // (undocumented)
    genericDeviceClass: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCTransferNewPrimaryControllerCompleteOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCTransferNewPrimaryControllerCompleteOptions {
    // (undocumented)
    genericDeviceClass: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCTransferNodeInformation" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCTransferNodeInformation extends ZWaveProtocolCC implements NodeProtocolInfoAndDeviceClass {
    constructor(options: WithAddress_2<ZWaveProtocolCCTransferNodeInformationOptions>);
    // (undocumented)
    basicDeviceClass: BasicDeviceClass;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCTransferNodeInformation;
    // (undocumented)
    genericDeviceClass: number;
    // (undocumented)
    isFrequentListening: FLiRS;
    // (undocumented)
    isListening: boolean;
    // (undocumented)
    isRouting: boolean;
    // (undocumented)
    nodeType: NodeType;
    // (undocumented)
    optionalFunctionality: boolean;
    // (undocumented)
    protocolVersion: ProtocolVersion;
    // (undocumented)
    sequenceNumber: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
    // (undocumented)
    sourceNodeId: number;
    // (undocumented)
    specificDeviceClass: number;
    // (undocumented)
    supportedDataRates: DataRate[];
    // (undocumented)
    supportsBeaming: boolean;
    // (undocumented)
    supportsSecurity: boolean;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCTransferNodeInformationOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCTransferNodeInformationOptions extends NodeProtocolInfoAndDeviceClass {
    // (undocumented)
    sequenceNumber: number;
    // (undocumented)
    sourceNodeId: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCTransferPresentation" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCTransferPresentation extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCTransferPresentationOptions>);
    // (undocumented)
    excludeNode: boolean;
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCTransferPresentation;
    // (undocumented)
    includeNode: boolean;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
    // (undocumented)
    supportsNWI: boolean;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCTransferPresentationOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCTransferPresentationOptions {
    // (undocumented)
    excludeNode: boolean;
    // (undocumented)
    includeNode: boolean;
    // (undocumented)
    supportsNWI: boolean;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCTransferRangeInformation" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export class ZWaveProtocolCCTransferRangeInformation extends ZWaveProtocolCC {
    constructor(options: WithAddress_2<ZWaveProtocolCCTransferRangeInformationOptions>);
    // (undocumented)
    static from(raw: CCRaw, ctx: CCParsingContext): ZWaveProtocolCCTransferRangeInformation;
    // (undocumented)
    neighborNodeIds: number[];
    // (undocumented)
    sequenceNumber: number;
    // (undocumented)
    serialize(ctx: CCEncodingContext): Bytes;
    // (undocumented)
    testedNodeId: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCCTransferRangeInformationOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export interface ZWaveProtocolCCTransferRangeInformationOptions {
    // (undocumented)
    neighborNodeIds: number[];
    // (undocumented)
    sequenceNumber: number;
    // (undocumented)
    testedNodeId: number;
}

// Warning: (ae-missing-release-tag) "ZWaveProtocolCommand" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal)
//
// @public (undocumented)
export enum ZWaveProtocolCommand {
    // (undocumented)
    AcceptLost = 23,
    // (undocumented)
    AssignIDs = 3,
    // (undocumented)
    AssignReturnRoute = 12,
    // (undocumented)
    AssignReturnRoutePriority = 36,
    // (undocumented)
    AssignSUCReturnRoute = 20,
    // (undocumented)
    AssignSUCReturnRoutePriority = 37,
    // (undocumented)
    AutomaticControllerUpdateStart = 16,
    // (undocumented)
    CommandComplete = 7,
    // (undocumented)
    ExcludeRequest = 35,
    // (undocumented)
    FindNodesInRange = 4,
    // (undocumented)
    GetNodesInRange = 5,
    // (undocumented)
    Lost = 22,
    // (undocumented)
    NewNodeRegistered = 13,
    // (undocumented)
    NewRangeRegistered = 14,
    // (undocumented)
    NodeInformationFrame = 1,
    // (undocumented)
    NodesExist = 31,
    // (undocumented)
    NodesExistReply = 32,
    // (undocumented)
    NOPPower = 24,
    // (undocumented)
    RangeInfo = 6,
    // (undocumented)
    RequestNodeInformationFrame = 2,
    // (undocumented)
    ReservedIDs = 26,
    // (undocumented)
    ReserveNodeIDs = 25,
    // (undocumented)
    SetNWIMode = 34,
    // (undocumented)
    SetSUC = 18,
    // (undocumented)
    SetSUCAck = 19,
    // (undocumented)
    SmartStartIncludedNodeInformation = 38,
    // (undocumented)
    SmartStartInclusionRequest = 40,
    // (undocumented)
    SmartStartPrime = 39,
    // (undocumented)
    StaticRouteRequest = 21,
    // (undocumented)
    SUCNodeID = 17,
    // (undocumented)
    TransferEnd = 11,
    // (undocumented)
    TransferNewPrimaryControllerComplete = 15,
    // (undocumented)
    TransferNodeInformation = 9,
    // (undocumented)
    TransferPresentation = 8,
    // (undocumented)
    TransferRangeInformation = 10
}

// Warnings were encountered during analysis:
//
// src/cc/TransportServiceCC.ts:47:2 - (ae-unresolved-link) The @link reference could not be resolved: The package "@zwave-js/cc" does not have an export "RELAXED_TIMING_THRESHOLD"
// src/cc/TransportServiceCC.ts:49:2 - (ae-unresolved-link) The @link reference could not be resolved: The package "@zwave-js/cc" does not have an export "RELAXED_TIMING_THRESHOLD"

// (No @packageDocumentation comment for this package)