/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { ActionContext } from "#behavior/context/ActionContext.js"; import { CommissioningClient } from "#behavior/system/commissioning/CommissioningClient.js"; import { NetworkClient } from "#behavior/system/network/NetworkClient.js"; import { NetworkRuntime } from "#behavior/system/network/NetworkRuntime.js"; import { Agent } from "#endpoint/Agent.js"; import { ClientNodeEndpoints } from "#endpoint/properties/ClientNodeEndpoints.js"; import { EndpointType } from "#endpoint/type/EndpointType.js"; import { MutableEndpoint } from "#endpoint/type/MutableEndpoint.js"; import { ClientNodeStore } from "#storage/client/ClientNodeStore.js"; import { Identity, MaybePromise } from "@matter/general"; import { MatterModel } from "@matter/model"; import { Interactable, PeerAddress } from "@matter/protocol"; import { Node } from "./Node.js"; import type { ServerNode } from "./ServerNode.js"; /** * A remote Matter {@link Node}. * * Client nodes may be peers (commissioned into a shared fabric) or commissionable, in which they are not usable until * you invoke {@link commissioned}. */ export declare class ClientNode extends Node { #private; constructor(options: ClientNode.Options); readonly nodeType: "client" | "group"; /** * Model of Matter semantics understood by this node. * * Matter elements missing from this model will not support all functionality. */ get matter(): MatterModel; get endpoints(): ClientNodeEndpoints; protected get store(): ClientNodeStore; initialize(): MaybePromise; get owner(): ServerNode; set owner(owner: ServerNode); /** * Add this node to a fabric. */ commission(options: CommissioningClient.CommissioningOptions): Promise; /** * Remove this node from the fabric (if commissioned) and locally. * This method tries to communicate with the device to decommission it properly and will fail if the device is * unreachable. * If you cannot reach the device, use {@link delete} instead. */ decommission(): Promise; /** * Force-remove the node without first decommissioning. * * If the node is still available, you should use {@link decommission} to remove it properly from the fabric and only use * this method as fallback. You should inform the user that manual factory-reset may be necessary. */ delete(): Promise; erase(): Promise; /** * Disable the node. * * This shuts down any active connections and prevents future connections until re-enabled. */ disable(): Promise; /** * Enable the node. * * If the node is disabled but reachable, this brings it online. */ enable(): Promise; protected eraseWithMutex(): Promise; protected resetWithMutex(): Promise; protected createRuntime(): NetworkRuntime; prepareRuntimeShutdown(): Promise; protected cancelWithMutex(): Promise; protected get container(): import("./index.js").Peers; act(purpose: string, actor: (agent: Agent.Instance) => MaybePromise): MaybePromise; act(actor: (agent: Agent.Instance) => MaybePromise): MaybePromise; get interaction(): Interactable; get peerAddress(): PeerAddress | undefined; get identity(): string | import("@matter/types").EndpointNumber; protected statusUpdate(message: string): void; } export declare namespace ClientNode { interface Options extends Node.Options { matter?: MatterModel; } const RootEndpoint: MutableEndpoint.With; readonly set: (defaults: import("../index.js").SupportedBehaviors.InputStateOf<{ readonly parts: typeof import("../index.js").PartsBehavior; readonly index: typeof import("../index.js").IndexBehavior; }>) => MutableEndpoint.With, { readonly parts: typeof import("../index.js").PartsBehavior; readonly index: typeof import("../index.js").IndexBehavior; }, {}>; readonly withBehaviors: (...behaviors: BL) => MutableEndpoint.With, import("../index.js").SupportedBehaviors.With<{ readonly parts: typeof import("../index.js").PartsBehavior; readonly index: typeof import("../index.js").IndexBehavior; }, BL>, {}>; readonly withClientClusters: (...clientClusters: CL) => MutableEndpoint.With, { readonly parts: typeof import("../index.js").PartsBehavior; readonly index: typeof import("../index.js").IndexBehavior; }, import("../endpoint/properties/SupportedClientClusters.js").SupportedClientClusters.With<{}, CL>>; readonly with: (...behaviors: BL) => MutableEndpoint.With, import("../index.js").SupportedBehaviors.With<{ readonly parts: typeof import("../index.js").PartsBehavior; readonly index: typeof import("../index.js").IndexBehavior; }, BL>, {}>; readonly deviceRevision: -1; }>, import("../index.js").SupportedBehaviors.With<{ readonly parts: typeof import("../index.js").PartsBehavior; readonly index: typeof import("../index.js").IndexBehavior; }, readonly [typeof CommissioningClient, typeof NetworkClient]>, {}>; interface RootEndpoint extends Identity { } } //# sourceMappingURL=ClientNode.d.ts.map