/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { ClusterBehavior } from "#behavior/cluster/ClusterBehavior.js";
import { Endpoint } from "#endpoint/Endpoint.js";
import { EndpointType } from "#endpoint/type/EndpointType.js";
import { Environment, Environmental, Observable } from "@matter/general";
/**
 * An environmental service that manages events endpoint and behavior types.
 */
export declare class ClientStructureEvents {
    #private;
    static [Environmental.create](env: Environment): ClientStructureEvents;
    endpointInstalled<T extends EndpointType>(type: T): Observable<[endpoint: Endpoint<T>]>;
    clusterInstalled<T extends ClusterBehavior.Type>(type: T): Observable<[endpoint: Endpoint, type: T]>;
    get clusterReplaced(): Observable<any, void>;
    get clusterDeleted(): Observable<any, void>;
    emitEndpoint(endpoint: Endpoint): void;
    emitCluster(endpoint: Endpoint, type: ClusterBehavior.Type): void;
    emitClusterReplaced(endpoint: Endpoint, type: ClusterBehavior.Type): void;
    emitClusterDeleted(endpoint: Endpoint, type: ClusterBehavior.Type): void;
}
//# sourceMappingURL=ClientStructureEvents.d.ts.map