/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { ActionContext } from "#behavior/context/ActionContext.js"; import { MaybePromise } from "@matter/general"; import { Schema } from "@matter/model"; import { VendorId } from "@matter/types"; import { BasicInformation } from "@matter/types/clusters/basic-information"; declare const Base: import("../../index.js").ClusterBehavior.Type, never>, import("@matter/types").ClusterType.Concrete, new () => {}, "basicInformation">; /** * This is the default server implementation of BasicInformationBehavior. * * `ConfigurationVersion` (mandatory since Matter 1.6) is seeded to 1 and constrained to only ever increase. When the * node's configuration changes in a way clients should detect, bump it with {@link increaseConfigurationVersion}, * which runs your change and increments the version exactly once afterwards — do not set `configurationVersion` * directly. Bridged nodes have their own version; see {@link BridgedDeviceBasicInformationServer}. */ export declare class BasicInformationServer extends Base { #private; initialize(): void; /** * Run a configuration change and increase {@link BasicInformation.State.configurationVersion} afterwards. * * Use via the agent, e.g. `agent.get(BasicInformationServer).increaseConfigurationVersion(() => { ...changes... })`. * The callback runs first and receives the acting {@link ActionContext}; the version is increased once it completes * so a single logical change yields a single increment. * * To group changes across multiple bridged nodes into one transaction with a single bridge increment, perform the * bridged-node changes inside this callback via the provided context and pass that context to * {@link BridgedDeviceBasicInformationServer.increaseConfigurationVersion}. */ increaseConfigurationVersion(change?: (context: ActionContext) => MaybePromise): Promise; /** * Compute the next configuration version, wrapping at the uint32 maximum back to the minimum value of 1. The * overflow behavior is not defined by the specification; see the spec-clarification follow-up. */ static nextConfigurationVersion(current?: number): number; static readonly schema: import("@matter/model").ClusterModel; static enableUniqueIdPersistence(schema: Schema.Cluster): Schema.Cluster; static createUniqueId(): string; } export declare namespace BasicInformationServer { interface ProductDescription { /** * The device name for commissioning announcements. */ readonly name: string; /** * The device type for commissioning announcements. */ readonly deviceType: number; /** * The vendor ID for commissioning announcements. */ readonly vendorId: VendorId; /** * The product ID for commissioning announcements. */ readonly productId: number; } } export {}; //# sourceMappingURL=BasicInformationServer.d.ts.map