import { Bytes, type BytesView } from "@zwave-js/shared"; export declare const ZWAVEME_LICENSE_KEY: Bytes; export declare const LICENSE_BLOCK_SIZE = 48; export declare const LICENSE_BLOB_SIZE = 32; export declare enum ZWaveMeLicenseSubcommand { Get = 0, Set = 1, Nonce = 2 } export declare const LICENSE_STATUS_OK = 0; /** Capabilities that can be unlocked through the feature license */ export declare enum ZWaveMeLicenseFlag { ControllerStaticAPI = 0, AllowMaxRFPower = 1, BackupRestore = 2, BatterySaveOnSleeping = 3, AdvancedNetworkDiagnostics = 4, LongRange = 5, FastCommunications = 6, ChangeVendorID = 7, PromiscuousMode = 8, RFJammingDetection = 10, ZnifferPTIMode = 11, ZnifferAdvancedRadioTool = 12 } export interface ZWaveMeLicense { vendorId: number; maxNodes: number; flags: ZWaveMeLicenseFlag[]; countSupport: number; raw: Bytes; } /** Parses a 32-byte license blob */ export declare function parseLicenseBlob(blob: BytesView): ZWaveMeLicense; /** Serializes a license blob, appending the trailing CRC-16 */ export declare function buildLicenseBlob(opts: { vendorId: number; maxNodes: number; flags: ZWaveMeLicenseFlag[]; countSupport?: number; }): Bytes; /** * Builds a plaintext license command block: * `subCommand | data... | 0xFF padding | CRC16 (LE)` */ export declare function buildCommandBlock(subCommand: ZWaveMeLicenseSubcommand, data?: BytesView): Bytes; /** * Verifies and parses a decrypted license command block. * Returns the payload after the subcommand and status bytes. */ export declare function parseCommandBlock(block: BytesView): { subCommand: number; status: number; payload: Bytes; }; /** Encrypts a 48-byte command block using AES-256-OFB */ export declare function encryptLicenseBlock(block: BytesView, iv: BytesView): Promise; /** Decrypts a 48-byte command block using AES-256-OFB */ export declare function decryptLicenseBlock(ciphertext: BytesView, iv: BytesView): Promise; //# sourceMappingURL=License.d.ts.map