/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { EventEmitter, Observable } from "@matter/general"; import { ExposedFabricInformation, SessionIntervals, Subscription } from "@matter/protocol"; import { NodeId } from "@matter/types"; import { Behavior } from "../../Behavior.js"; /** * Active {@link ServerNode} client sessions. */ export declare class SessionsBehavior extends Behavior { #private; static readonly id = "sessions"; readonly state: SessionsBehavior.State; readonly events: SessionsBehavior.Events; initialize(): void; } export declare namespace SessionsBehavior { interface Session { name: string; nodeId: NodeId; peerNodeId: NodeId; fabric?: ExposedFabricInformation; isPeerActive: boolean; lastInteractionTimestamp: number | undefined; lastActiveTimestamp: number | undefined; numberOfActiveSubscriptions: number; } class State { sessions: Record; /** * Session intervals this node uses and advertises. Applied when the node starts; values you omit fall back to * the Matter defaults. Non-default values are also carried in the operational DNS-SD advertisement * (SII/SAI/SAT). */ intervals?: Partial; } class Events extends EventEmitter { opened: Observable<[session: Session], void>; closed: Observable<[session: Session], void>; subscriptionsChanged: Observable<[session: Session], void>; subscriptionAdded: Observable<[subscription: Subscription], void>; } } //# sourceMappingURL=SessionsBehavior.d.ts.map