/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Behavior } from "#behavior/Behavior.js";
import { ClusterType } from "@matter/types";
/**
 * Create a non-functional instance of a {@link Behavior} for introspection purposes.
 */
export declare function introspectionInstanceOf(type: Behavior.Type): Record<string, (...args: any[]) => any>;
/**
 * The cluster type for a behavior.
 */
export type ClusterOf<B extends Behavior.Type> = B extends {
    cluster: infer C extends ClusterType;
} ? C : ClusterType.Unknown;
/**
 * The extension interface for a behavior.
 */
export type ExtensionInterfaceOf<B extends Behavior.Type> = B extends {
    ExtensionInterface: infer I extends {};
} ? I : {};
/**
 * Mark a behavior as a cluster client.
 */
export declare function markClientBehavior(type: Behavior.Type): void;
/**
 * Test whether a behavior is a cluster client.
 */
export declare function isClientBehavior(type: Behavior.Type): boolean | undefined;
//# sourceMappingURL=cluster-behavior-utils.d.ts.map