/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { DeviceTypeId } from "../datatype/DeviceTypeId.js"; import { VendorId } from "../datatype/VendorId.js"; import { BitFlag } from "../schema/BitmapSchema.js"; /** * Bitmap for the Enhanced Setup Flow Options field in DeviceModelDclSchema. * @see {@link MatterSpecification.v141.Core} § 11.23.6. */ export declare const EnhancedSetupFlowOptionsBitmap: { /** * A commissioner is required to show Terms and Conditions content if this is the initial * commissioning for the device out of a factory-reset state. */ tcOnInitialCommission: BitFlag; /** * The commissioner SHALL NOT reuse user's responses to the required Terms and Conditions * from commissioning a previous product (same VID) with the same T&C. */ disallowTcReuseForRequiredTc: BitFlag; /** * The commissioner SHALL NOT reuse user's responses to the non-required Terms and Conditions * from commissioning a previous product (same VID) with the same T&C. */ disallowTcReuseForNonRequiredTc: BitFlag; /** * The commissioner SHALL NOT reuse user's responses to the Terms and Conditions from * commissioning a previous product (same VID, other PID) with the same T&C. */ disallowTcReuseBetweenPids: BitFlag; }; export declare const EnhancedSetupFlowOptionsSchema: import("../schema/BitmapSchema.js").BitmapSchemaInternal<{ /** * A commissioner is required to show Terms and Conditions content if this is the initial * commissioning for the device out of a factory-reset state. */ tcOnInitialCommission: BitFlag; /** * The commissioner SHALL NOT reuse user's responses to the required Terms and Conditions * from commissioning a previous product (same VID) with the same T&C. */ disallowTcReuseForRequiredTc: BitFlag; /** * The commissioner SHALL NOT reuse user's responses to the non-required Terms and Conditions * from commissioning a previous product (same VID) with the same T&C. */ disallowTcReuseForNonRequiredTc: BitFlag; /** * The commissioner SHALL NOT reuse user's responses to the Terms and Conditions from * commissioning a previous product (same VID, other PID) with the same T&C. */ disallowTcReuseBetweenPids: BitFlag; }>; /** * DeviceModel Schema * @see {@link MatterSpecification.v141.Core} § 11.23.6. * DCL endpoint: * * /dcl/model/models * * /dcl/model/models/{vid} * * /dcl/model/models/{vid}/{pid} */ export interface DeviceModelDclSchema { /** * This field SHALL identify the vendor of the product by its Vendor ID and SHALL match the VendorID * field in the Basic Information Cluster of a device running the software referenced by this * DeviceModel/DeviceSoftwareVersionModel record. */ vid: VendorId; /** * This field SHALL identify the Product ID of the product instance to which a certification declaration, * and thus a DCL entry, applies. This field SHALL match the ProductID field in the Basic Information * Cluster of a device running the software referenced by this DeviceModel/DeviceSoftwareVersionModel * record. */ pid: number; /** * DeviceTypeID is the Primary Device Type identifier for the device. For example, DeviceTypeID is 10 * (0x000A), which is the device type identifier for a Door Lock. */ deviceTypeID: DeviceTypeId; /** * This field SHOULD match the ProductName field in the Basic Information Cluster of a device running * the software referenced by this DeviceModel record. */ productName: string; /** * This field SHOULD match the ProductLabel field in the Basic Information Cluster of a device running * the software referenced by this DeviceModel record. */ productLabel: string; /** * This field SHALL match the PartNumber field in the Basic Information Cluster of a device running the * software referenced by this DeviceModel record. * Multiple products (and hence PartNumbers) can share a ProductID. For instance, there may be different * packaging (with different PartNumbers) for different regions; also different colors of a product * might share the ProductID but may have a different PartNumber. In such cases, the choice of a * single PartNumber out of the available set of PartNumbers using this ProductID SHALL be used to * populate this field. */ partNumber: string; /** * This field SHALL identify the device’s available technologies for device discovery which SHALL be * encoded as defined in Table 40, “Discovery Capabilities Bitmask”. This field SHALL match the Table * 40, “Discovery Capabilities Bitmask” provided in the Section 5.1.3, “QR Code” (if a QR-code is provided * on or with the product). This field SHALL be populated if the CommissioningFallbackUrl is * populated, and SHOULD be populated for all other products. */ discoveryCapabilitiesBitmask: number; /** * This field SHALL identify the device’s commissioning flow with encoding as described in Custom * Flow. */ commissioningCustomFlow: number; /** * This field SHALL identify a vendor-specific commissioning URL for the device model when the * CommissioningCustomFlow field is set to '2', and MAY be set for other values of CommissioningCustomFlow. * See Custom Commissioning Flow section for how this URL is used. During the lifetime of * the product, the specified URL SHOULD resolve to a maintained web page. The syntax of this field * SHALL follow the syntax as specified in RFC 1738 and SHALL use the https scheme. The maximum * length of this field is 256 ASCII characters. */ commissioningCustomFlowUrl?: string; /** * This field SHALL identify a hint for the steps that MAY be used to put a device that has not yet been * commissioned into commissioning mode. This field is a bitmap with values defined in the Pairing * Hint Table. For example, a value of 1 (bit 0 is set) indicates that a device that has not yet been commissioned * will enter Commissioning Mode upon a power cycle. * Devices that implement Extended Discovery SHALL reflect this value in the Pairing Hint field of * Commissionable Node Discovery when they have not yet been commissioned. */ commissioningModeInitialStepsHint: number; /** * This field SHALL be populated with the appropriate Pairing Instruction for those values of * CommissioningModeInitialStepsHint, for which the Pairing Hint Table indicates a Pairing Instruction (PI) * dependency. * Devices that implement Extended Discovery SHALL reflect this value in the Pairing Instruction field * of Commissionable Node Discovery when they have not yet been commissioned. */ commissioningModeInitialStepsInstruction?: string; /** * This field SHALL identify a hint for the steps that MAY be used to put a device that has already been * commissioned into commissioning mode. This field is a bitmap with values defined in the Pairing * Hint Table. At least bit 2 SHALL be set, to indicate that a current Administrator can be used to put a * device that has already been commissioned into commissioning mode (see Section 5.6.3, “Enhanced * Commissioning Method (ECM)”). Devices which implement additional mechanisms to put a device * that has already been commissioned into commissioning mode SHALL reflect these mechanism by * setting the corresponding bits in this field. * Devices that implement Extended Discovery SHALL reflect this value in the Pairing Hint field of * Commissionable Node Discovery when they have already been commissioned. */ commissioningModeSecondaryStepsHint: number; /** * This field SHALL be populated with the appropriate Pairing Instruction for those values of * CommissioningModeSecondaryStepsHint, for which the Pairing Hint Table indicates a Pairing Instruction * (PI) dependency. * Devices that implement Extended Discovery SHALL reflect this value in the Pairing Instruction field * of Commissionable Node Discovery when they have already been commissioned. */ commissioningModeSecondaryStepsInstruction?: string; /** * This field SHALL identify a vendor-specific commissioning-fallback URL for the device model, * which can be used by a Commissioner in case commissioning fails to direct the user to a manufacturer-provided * mechanism to provide resolution to commissioning issues. See Commissioning Fallback * section for how this URL is used. * During the lifetime of the product, the specified URL SHOULD resolve to a maintained web page. * The syntax of this field SHALL follow the syntax as specified in RFC 1738 and SHALL use the https * scheme. The maximum length of this field is 256 ASCII characters. */ commissioningFallbackUrl?: string; /** * This field (when provided) SHALL identify a product-specific web page containing a user manual * for the device model. During the lifetime of the product, the specified URL SHOULD resolve to a * maintained web page. The syntax of this field SHALL follow the syntax as specified in RFC 1738 and * SHALL use the https scheme. The maximum length of this field is 256 ASCII characters. */ userManualUrl?: string; /** * This field (when provided) SHALL identify a product specific support web page. During the lifetime * of the product, the specified URL SHOULD resolve to a maintained web page. The syntax of this * field SHALL follow the syntax as specified in RFC 1738 and SHALL use the https scheme. The maximum * length of this field is 256 ASCII characters. */ supportUrl?: string; /** * This field (when provided) SHALL identify a link to a product specific web page. This field SHALL * match the ProductURL field in the Basic Information Cluster of a device running the software referenced * by this DeviceModel record. During the lifetime of the product, the specified URL SHOULD resolve to a * maintained web page. The syntax of this field SHALL follow the syntax as specified in * RFC 1738 and SHALL use the https scheme. The maximum length of this field is 256 ASCII characters. */ productUrl?: string; /** * This field (when provided) SHALL identify a link to the Localized String File of this product. This * field SHALL NOT have a localized string identifier. During the lifetime of the product, the specified * URL SHOULD resolve to a maintained Localized String File. The syntax of this field SHALL follow * the syntax as specified in RFC 1738 and SHALL use the https scheme. The maximum length of this * field is 256 ASCII characters. */ lsfUrl?: string; /** * LsfRevision is a monotonically increasing positive integer indicating the latest available version of * Localized String File. Any client can use this field to check whether it has the latest version of the * Localized String File cached. When the first version of the Localized String File is published, the * value of this field SHOULD be 1. When a new revision of the Localized String File is published, this * value SHALL monotonically increase by 1. When a client of this information finds this to be greater * than its currently stored LSF revision number, it SHOULD download the latest version of the LSF * from the LsfUrl, and update its local value of this field. * This field SHALL be provided if and only if when LsfUrl is provided. */ lsfRevision?: number; /** * This field SHALL identify the configuration options for the Enhanced Setup Flow. This field is a * bitmap with values defined in Enhanced Setup Flow Options Table. Decode with EnhancedSetupFlowOptionsSchema. */ enhancedSetupFlowOptions?: number; /** * This field (when provided) SHALL identify a link to the Enhanced Setup Flow Terms and Condition * File for this product. During the lifetime of the product, the specified URL SHOULD resolve to a * maintained Terms and Conditions File. The syntax of this field SHALL follow the syntax as specified * in RFC 1738. The maximum length of this field is 256 ASCII characters. All URLs SHALL use the * https scheme. This field SHALL be present if and only if the EnhancedSetupFlowOptions field has * bit 0 set. */ enhancedSetupFlowTCUrl?: string; /** * This field (when provided) is an increasing positive integer indicating the latest available version of * the Enhanced Setup Flow Terms and Conditions file. When a new revision of the File is published, * this value SHALL increase (and SHOULD increase by 1). This field SHALL be present if and only if * the EnhancedSetupFlowOptions field has bit 0 set. */ enhancedSetupFlowTCRevision?: number; /** * This field (when provided) SHALL contain the digest of the entire contents of the associated file * downloaded from the EnhancedSetupFlowTCUrl field, encoded in base64 string representation and * SHALL be used to ensure the contents of the downloaded file are authentic. The digest SHALL have * been computed using the SHA-256 digest algorithm. This field SHALL be present if and only if the * EnhancedSetupFlowOptions field has bit 0 set. */ enhancedSetupFlowTCDigest?: string; /** * This field (when provided) SHALL indicate the total size of the Enhanced Setup Flow Terms and * Conditions file in bytes, and SHALL be used to ensure the downloaded file size is within the bounds * of EnhancedSetupFlowTCFileSize. This field SHALL be provided if and only if the EnhancedSetupFlowTCUrl * field is present. */ enhancedSetupFlowTCFileSize?: number; /** * This field (when provided) SHALL identify a link to a vendor-specific URL which SHALL provide a * manufacturer specific means to resolve any functionality limitations indicated by the * TERMS_AND_CONDITIONS_CHANGED status code. This field SHALL be present if the EnhancedSetupFlowOptions * field has bit 0 set. During the lifetime of the product, the specified URL SHOULD * resolve to a maintained web page. The syntax of this field SHALL follow the syntax as specified in * RFC 1738. The maximum length of this field is 256 ASCII characters. All URLs SHALL use the https * scheme. */ enhancedSetupFlowMaintenanceUrl?: string; /** * The SchemaVersion field value history for this schema is provided below: * * 0: Initial Release */ schemaVersion: number; } //# sourceMappingURL=device.d.ts.map