/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import type { BehaviorBacking } from "#behavior/internal/BehaviorBacking.js";
import type { Node } from "#node/Node.js";
import type { NodeProtocol } from "@matter/protocol";
/**
 * Protocol view of a {@link Node}
 *
 * This service maintains an optimized {@link NodeProtocol} that maps to the state of a {@link Node}.
 *
 * The protocol view only contains endpoints and server clusters with active backings; client clusters are excluded
 * as they are not part of the node's server-facing data model.  {@link Behaviors} conveys backing state via the
 * public interface.
 */
export declare class ProtocolService {
    #private;
    constructor(node: Node);
    /**
     * Invoked by a backing when initialized.
     */
    addCluster(backing: BehaviorBacking): void;
    /**
     * Invoked by a backing when closed.
     */
    deleteCluster(backing: BehaviorBacking): void;
    /**
     * Invoked by a backing when there is a state change.
     *
     * This optimized path allows us to broadcast state changes without registering observers for every change.
     */
    handleChange(backing: BehaviorBacking, props: string[]): void;
    /**
     * The {@link NodeProtocol}.
     */
    get protocol(): NodeProtocol;
}
//# sourceMappingURL=ProtocolService.d.ts.map