/**
 * @license
 * Copyright 2025-2026 Open Home Foundation
 * SPDX-License-Identifier: Apache-2.0
 */
import "@material/web/divider/divider";
import { type BorderRouterEntry, type MatterNode } from "@matter-server/ws-client";
import { LitElement, TemplateResult } from "lit";
import "../../components/ha-svg-icon";
import type { ThreadEdgePair, ThreadExternalDevice } from "./network-types.js";
import "./update-connections-dialog.js";
declare global {
    interface HTMLElementTagNameMap {
        "network-details": NetworkDetails;
    }
}
export declare class NetworkDetails extends LitElement {
    selectedNodeId: number | string | null;
    hideOfflineNodes: boolean;
    hideWeakSignalEdges: boolean;
    hideMediumSignalEdges: boolean;
    hideStrongSignalEdges: boolean;
    nodes: Record<string, MatterNode>;
    unknownDevices: ReadonlyMap<string, ThreadExternalDevice>;
    borderRouters: ReadonlyMap<string, BorderRouterEntry>;
    wifiAccessPoints: Map<string, {
        bssid: string;
        connectedNodes: string[];
    }>;
    threadEdgePairs: Map<string, ThreadEdgePair>;
    private client;
    private _showUpdateDialog;
    private _handleClose;
    private _handleSelectNode;
    /** Handle keyboard interaction for clickable elements (Enter/Space activates) */
    private _handleKeyDown;
    private _getSignalIcon;
    /**
     * Format a node ID as hex for Matter log format display.
     * Returns format like "@1:7b" for node ID 123.
     */
    private _formatNodeIdHex;
    private _getExternalDeviceLabel;
    private _renderWiFiInfo;
    private _renderThreadInfo;
    private _renderNodeInfo;
    private _renderUnknownDeviceInfo;
    /**
     * Neighbor list shared by external-device panels (unknown + BR). Uses the
     * same edge pairs as the graph so panel and graph agree on which links
     * survive filtering. Sorted by best RSSI/LQI signal, descending.
     */
    private _renderExternalDeviceNeighbors;
    /**
     * Identity rows for a Border Router (network name, vendor, model, Thread version, ext address).
     * Caller controls the surrounding <div class="section"> + heading.
     */
    private _renderBorderRouterIdentityRows;
    /**
     * Render the MeshCoP state bitmap as decoded fields (BBR role, connection mode, Thread
     * interface status, availability, ePSKc) plus the raw hex underneath. Reserved values are
     * rendered as numeric so a future spec extension stays visible.
     */
    private _renderStateBitmap;
    /**
     * Network-info rows for a Border Router (extended PAN ID, partition, timestamps, state, domain, agent ID).
     * Returns nothing if no fields are populated, so the caller can skip the surrounding section.
     */
    private _renderBorderRouterNetworkRows;
    /**
     * Address rows for a Border Router (hostname, IPs, ports, sources).
     */
    private _renderBorderRouterAddressRows;
    private _renderBorderRouterInfo;
    /**
     * Determine if update connections button should be shown.
     */
    private _canUpdateConnections;
    /**
     * Get the type of the currently selected node for dialog variant.
     */
    private _getSelectedNodeType;
    /**
     * Get online neighbors for a Thread node.
     */
    private _getOnlineNeighbors;
    /**
     * Get online nodes that see an unknown device.
     */
    private _getOnlineSeenByNodes;
    /**
     * Get the name of the selected node for display in dialog.
     */
    private _getSelectedNodeName;
    private _handleUpdateConnections;
    private _handleDialogClose;
    private _renderWiFiAccessPointInfo;
    /**
     * Annotation shown on a commissioned Thread node that is also a discovered Border Router.
     * Mirrors the BR Identity/Network/Addresses sections, sans the redundant ext-address row.
     */
    private _renderCommissionedNodeBorderRouterAnnotation;
    render(): TemplateResult<1>;
    static styles: import("lit").CSSResult[];
}
//# sourceMappingURL=network-details.d.ts.map