/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { ActionContext } from "#behavior/context/ActionContext.js"; import { CommissioningServer } from "#behavior/system/commissioning/CommissioningServer.js"; import { EventsBehavior } from "#behavior/system/events/EventsBehavior.js"; import { NetworkServer } from "#behavior/system/network/NetworkServer.js"; import { ServerNetworkRuntime } from "#behavior/system/network/ServerNetworkRuntime.js"; import { ProductDescriptionServer } from "#behavior/system/product-description/ProductDescriptionServer.js"; import { SessionsBehavior } from "#behavior/system/sessions/SessionsBehavior.js"; import { SubscriptionsServer } from "#behavior/system/subscriptions/SubscriptionsServer.js"; import { Construction, Identity } from "@matter/general"; import { Interactable } from "@matter/protocol"; import { Node } from "./Node.js"; import { Peers } from "./client/Peers.js"; /** * A server-side Matter {@link Node}. * * The Matter specification often refers to server-side nodes as "devices". */ export declare class ServerNode extends Node { #private; /** * Construct a new ServerNode. * * You can use {@link create} to construct the node and wait for it to initialize fully. * * @param type the variation of {@link RootEndpoint} that defines the root endpoint's behavior * @param options root endpoint options and the node's environment */ constructor(type?: T, options?: Node.Options); /** * Construct a new ServerNode. * * You can use {@link create} to construct the node and wait for it to initialize fully. * * @param config a {@link Endpoint.Configuration} for the root endpoint */ constructor(config: Partial>); /** * Create a new ServerNode. * * @param type the variation of {@link RootEndpoint} that defines the root endpoint's behavior * @param options root endpoint configuration and, optionally, the node's environment */ static create, T extends ServerNode.RootEndpoint = ServerNode.RootEndpoint>(this: This, type?: T, options?: Node.Options): Promise>; /** * Create a new ServerNode. * * @param config root endpoint configuration and, optionally, the node's {@link Environment} */ static create, T extends ServerNode.RootEndpoint = ServerNode.RootEndpoint>(this: This, config: Partial>): Promise>; protected createRuntime(): ServerNetworkRuntime; [Construction.destruct](): Promise; prepareRuntimeShutdown(): Promise; /** * Perform a factory reset of the node. */ erase(): Promise; protected eraseWithMutex(): Promise; /** * Access other nodes on the fabric. */ get peers(): Peers; get interaction(): Interactable; readonly nodeType: "server"; protected initialize(): Promise; /** * By default, on factory reset we erase all stored data. * * If this is inappropriate for your application, you may override to alter the behavior. Matter requires that all * "security- and privacy-related data and key material" is removed on factory reset. * * @see {@link MatterSpecification.v16.Core} ยง 13.4 */ protected resetStorage(): Promise; /** * Normal endpoints must have an owner to complete construction but server nodes have no such precondition for * construction. */ protected assertConstructable(): void; } export declare namespace ServerNode { const RootEndpoint: import("../index.js").MutableEndpoint.With, import("../index.js").SupportedBehaviors.With<{ readonly parts: typeof import("../index.js").PartsBehavior; } & { readonly index: typeof import("../index.js").IndexBehavior; } & { readonly accessControl: typeof import("../behaviors/index.js").AccessControlServer; } & { readonly basicInformation: typeof import("../behaviors/index.js").BasicInformationServer; } & { readonly generalCommissioning: typeof import("../behaviors/index.js").GeneralCommissioningServer; } & { readonly generalDiagnostics: typeof import("../behaviors/index.js").GeneralDiagnosticsServer; } & { readonly administratorCommissioning: typeof import("../behaviors/index.js").AdministratorCommissioningServer; } & { readonly operationalCredentials: typeof import("../behaviors/index.js").OperationalCredentialsServer; } & { readonly groupKeyManagement: typeof import("../behaviors/index.js").GroupKeyManagementServer; }, readonly [typeof CommissioningServer, typeof NetworkServer, typeof ProductDescriptionServer, typeof SubscriptionsServer, typeof SessionsBehavior, typeof EventsBehavior]>, {}>; interface RootEndpoint extends Identity { } } //# sourceMappingURL=ServerNode.d.ts.map