/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { ClusterBehavior } from "#behavior/cluster/ClusterBehavior.js";
import { ClusterBehaviorType } from "#behavior/cluster/ClusterBehaviorType.js";
import { FeatureBitmap } from "@matter/model";
import { AttributeId, ClusterId, CommandId } from "@matter/types";
/**
 * Obtain a {@link ClusterBehavior.Type} for a remote cluster.
 */
export declare function PeerBehavior(shape: PeerBehavior.ClusterShape): ClusterBehavior.Type;
export declare namespace PeerBehavior {
    type ClusterShape = DiscoveredClusterShape | KnownClusterShape;
    /**
     * A cluster shape that we assemble using a combination of Matter standards and metadata discovered by reading from
     * a peer.
     */
    interface DiscoveredClusterShape {
        kind: "discovered";
        id: ClusterId;
        revision: number;
        features?: FeatureBitmap | number;
        attributes?: AttributeId[];
        commands?: CommandId[];
        generatedCommands?: CommandId[];
        commandFactory?: ClusterBehaviorType.CommandFactory;
    }
    /**
     * A known cluster shape that we instrument as is.
     */
    interface KnownClusterShape {
        kind: "known";
        behavior: ClusterBehavior.Type;
        commandFactory?: ClusterBehaviorType.CommandFactory;
    }
}
//# sourceMappingURL=PeerBehavior.d.ts.map