/**
 * @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<import("./BasicInformationBehavior.js").BasicInformationBehaviorConstructor, import("@matter/types").ClusterType.WithEnabledAttributes<import("@matter/types").ClusterType.WithEnabledEvents<BasicInformation, "leave" | "shutDown" | "startUp">, 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<T = void>(change?: (context: ActionContext) => MaybePromise<T>): Promise<T>;
    /**
     * 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