/** * @license * Copyright 2025-2026 Open Home Foundation * SPDX-License-Identifier: Apache-2.0 */ import type { MatterNode } from "@matter-server/ws-client"; /** * Gets the primary device type ID for a node. * Scans all endpoints for DeviceTypeList attribute (x/29/0) and prefers * the first explicitly-mapped, non-infrastructure type. Falls back to * the first type found on any endpoint. */ export declare function getPrimaryDeviceType(node: MatterNode): number | undefined; /** * Gets the appropriate MDI icon path for a specific endpoint on a node. * Prefers non-utility device types when present. */ export declare function getEndpointIcon(node: MatterNode, endpoint: number): string; /** * Gets the appropriate MDI icon path for a node. * Considers device type and Thread role. */ export declare function getDeviceIcon(node: MatterNode, threadRole?: number): string; /** * Gets the appropriate MDI icon path for a network type. */ export declare function getNetworkTypeIcon(networkType: string): string; /** * Creates an SVG data URL from an MDI icon path for use in vis.js. * @param iconPath - The MDI icon path * @param color - The icon color (CSS color string) * @param size - The icon size in pixels * @param badge - Optional top-right corner badge: an MDI glyph filled white on a colored disc * @returns A data URL containing the SVG */ export declare function createIconDataUrl(iconPath: string, color: string, size?: number, badge?: { iconPath: string; color: string; }): string; /** * Creates an SVG data URL for a network graph node. * @param node - The Matter node * @param threadRole - Optional Thread routing role * @param isSelected - Whether the node is selected * @param isOffline - Whether the node is offline * @returns A data URL containing the SVG */ export declare function createNodeIconDataUrl(node: MatterNode, threadRole?: number, isSelected?: boolean, isOffline?: boolean): string; /** * Creates an SVG data URL for an unknown Thread device (question mark). * @param isRouter - Whether the device appears to be a router * @param isSelected - Whether the node is selected * @returns A data URL containing the SVG */ export declare function createUnknownDeviceIconDataUrl(isRouter?: boolean, isSelected?: boolean): string; /** * Creates an SVG data URL for a Thread Border Router identified via mDNS. * * Thread Leader (mesh routing role) and Primary BBR (backbone role) are orthogonal: the central * glyph reflects the mesh role (crown for leader, router otherwise) while a corner star badge marks * the primary BBR. A BR that is both shows both. * * @param isSelected - Whether the node is selected * @param isLeader - Whether this BR is the Thread network leader (from MeshCoP state bitmap) * @param isPrimaryBbr - Whether this BR is the primary Backbone Border Router (from MeshCoP state bitmap) * @returns A data URL containing the SVG */ export declare function createBorderRouterIconDataUrl(isSelected?: boolean, isLeader?: boolean, isPrimaryBbr?: boolean): string; /** * Creates an SVG data URL for a WiFi access point/router. * @param isSelected - Whether the node is selected * @returns A data URL containing the SVG */ export declare function createWiFiRouterIconDataUrl(isSelected?: boolean): string; //# sourceMappingURL=device-icons.d.ts.map