/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { ActionContext } from "#behavior/context/ActionContext.js"; import { Endpoint } from "#endpoint/Endpoint.js"; import { EndpointLifecycle } from "#endpoint/properties/EndpointLifecycle.js"; import { AsyncObservable, Mutex, Observable } from "@matter/general"; /** * Extended lifecycle information that only applies to root endpoints. */ export declare class NodeLifecycle extends EndpointLifecycle { #private; constructor(endpoint: Endpoint); /** * True when the node is connected to the network. */ get isOnline(): boolean; /** * The time the node went online. */ get onlineAt(): Date | undefined; /** * Emits when the node is first online. */ get online(): AsyncObservable<[context: ActionContext], void>; /** * Emits when the node's endpoint tree is ready/initialized and used to initialize the commissioning state */ get initialized(): Observable<[isCommissioned: boolean], void>; /** * Emits when the node is going offline. */ get goingOffline(): AsyncObservable<[context: ActionContext], void>; /** * Emits when the node goes offline. */ get offline(): AsyncObservable<[context: ActionContext], void>; /** * True when the node is part of at least one fabric. */ get isCommissioned(): boolean; /** * Emits when node is first commissioned. */ get commissioned(): Observable<[context: ActionContext], void>; /** * Emits when node is no longer commissioned. */ get decommissioned(): Observable<[context: ActionContext], void>; /** * Mutex for protecting node lifecycle transitions. * * Methods that implement complex async lifecycle transitions use this mutex to ensure conflicting operations cannot * intermingle. * * Generally methods that hold this mutex have a protected "*WithMutex" variant. This allows for nesting of logic * that requires the mutex without causing deadlock. */ get mutex(): Mutex; set targetState(state: "online" | "offline"); get shouldBeOnline(): boolean; get shouldBeOffline(): boolean; } //# sourceMappingURL=NodeLifecycle.d.ts.map