UNPKG

matterbridge

Version:
183 lines • 5.8 kB
/** * This file contains the types for Matterbridge. * * @file matterbridgeTypes.ts * @author Luca Liguori * @date 2024-07-12 * @version 1.0.2 * * Copyright 2023, 2024, 2025 Luca Liguori. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ import { NodeStorage } from './storage/export.js'; import { LogLevel } from './logger/export.js'; import { MatterbridgePlatform, PlatformConfig, PlatformSchema } from './matterbridgePlatform.js'; import { MatterbridgeEndpoint } from './matterbridgeEndpoint.js'; import { FabricIndex, NodeId, VendorId, StorageContext, ServerNode, EndpointNumber, Endpoint as EndpointNode } from '@matter/main'; import { ExposedFabricInformation } from '@matter/main/protocol'; import { AggregatorEndpoint } from '@matter/main/endpoints/aggregator'; export declare const plg = "\u001B[38;5;33m"; export declare const dev = "\u001B[38;5;79m"; export declare const typ = "\u001B[38;5;207m"; export interface RegisteredPlugin extends BaseRegisteredPlugin { nodeContext?: NodeStorage; storageContext?: StorageContext; serverNode?: ServerNode<ServerNode.RootEndpoint>; aggregatorNode?: EndpointNode<AggregatorEndpoint>; device?: MatterbridgeEndpoint; platform?: MatterbridgePlatform; reachabilityTimeout?: NodeJS.Timeout; } export interface BaseRegisteredPlugin { name: string; version: string; description: string; author: string; path: string; type: string; latestVersion?: string; homepage?: string; help?: string; changelog?: string; funding?: string; locked?: boolean; error?: boolean; enabled?: boolean; loaded?: boolean; started?: boolean; configured?: boolean; paired?: boolean; restartRequired?: boolean; fabricInformations?: SanitizedExposedFabricInformation[]; sessionInformations?: SanitizedSessionInformation[]; registeredDevices?: number; addedDevices?: number; qrPairingCode?: string; manualPairingCode?: string; configJson?: PlatformConfig; schemaJson?: PlatformSchema; hasWhiteList?: boolean; hasBlackList?: boolean; } export interface SystemInformation { interfaceName: string; macAddress: string; ipv4Address: string; ipv6Address: string; nodeVersion: string; hostname: string; user: string; osType: string; osRelease: string; osPlatform: string; osArch: string; totalMemory: string; freeMemory: string; systemUptime: string; processUptime: string; cpuUsage: string; rss: string; heapTotal: string; heapUsed: string; } export interface MatterbridgeInformation { homeDirectory: string; rootDirectory: string; matterbridgeDirectory: string; matterbridgePluginDirectory: string; matterbridgeCertDirectory: string; globalModulesDirectory: string; matterbridgeVersion: string; matterbridgeLatestVersion: string; matterbridgeQrPairingCode: string | undefined; matterbridgeManualPairingCode: string | undefined; matterbridgeFabricInformations: SanitizedExposedFabricInformation[] | undefined; matterbridgeSessionInformations: SanitizedSessionInformation[] | undefined; matterbridgePaired: boolean | undefined; matterbridgeAdvertise: boolean | undefined; bridgeMode: string; restartMode: string; readOnly: boolean; shellyBoard: boolean; shellySysUpdate: boolean; shellyMainUpdate: boolean; profile?: string; loggerLevel: LogLevel; fileLogger: boolean; matterLoggerLevel: number; matterFileLogger: boolean; mattermdnsinterface: string | undefined; matteripv4address: string | undefined; matteripv6address: string | undefined; matterPort: number; matterDiscriminator: number | undefined; matterPasscode: number | undefined; restartRequired: boolean; updateRequired: boolean; } export interface SanitizedExposedFabricInformation { fabricIndex: FabricIndex; fabricId: string; nodeId: string; rootNodeId: string; rootVendorId: VendorId; rootVendorName: string; label: string; } export interface SessionInformation { name: string; nodeId: NodeId; peerNodeId: NodeId; fabric?: ExposedFabricInformation; isPeerActive: boolean; secure: boolean; lastInteractionTimestamp?: number; lastActiveTimestamp?: number; numberOfActiveSubscriptions: number; } export interface SanitizedSessionInformation { name: string; nodeId: string; peerNodeId: string; fabric?: SanitizedExposedFabricInformation; isPeerActive: boolean; secure: boolean; lastInteractionTimestamp?: string; lastActiveTimestamp?: string; numberOfActiveSubscriptions: number; } export interface ApiDevices { pluginName: string; type: string; endpoint: EndpointNumber | undefined; name: string; serial: string; productUrl: string; configUrl?: string; uniqueId: string; reachable: boolean; cluster: string; } export interface ApiClusters { endpoint: string; id: string; deviceTypes: number[]; clusterName: string; clusterId: string; attributeName: string; attributeId: string; attributeValue: string; attributeLocalValue: unknown; } //# sourceMappingURL=matterbridgeTypes.d.ts.map