/** * Network icon shared types. */ export type NetworkIconKind = 'internet' | 'cloud' | 'router' | 'switch' | 'hub' | 'bridge' | 'repeater' | 'gateway' | 'modem' | 'wlc' | 'wap' | 'mesh' | 'extender' | 'firewall' | 'ngfw' | 'waf' | 'vpn' | 'ids' | 'ips' | 'proxy' | 'reverseProxy' | 'swg' | 'siem' | 'nac' | 'server' | 'database' | 'storage' | 'nas' | 'san' | 'desktop' | 'laptop' | 'workstation' | 'thinClient' | 'phone' | 'tablet' | 'printer' | 'scanner' | 'ipPhone' | 'smartTv' | 'vm' | 'hypervisor' | 'container' | 'k8s' | 'k8sNode' | 'apiGateway' | 'loadBalancer' | 'cdn' | 'serverless' | 'vpc' | 'subnet' | 'nat' | 'igw' | 'bastion' | 'sql' | 'nosql' | 'redis' | 'elasticsearch' | 'warehouse' | 'queue' | 'kafka' | 'rabbitmq' | 'mqtt' | 'eventBus' | 'serviceBus' | 'monitor' | 'logging' | 'snmp' | 'config' | 'nms' | 'plc' | 'hmi' | 'scada' | 'rtu' | 'opcua' | 'modbus' | 'canGateway' | 'edgeGateway' | 'iotGateway' | 'esp32' | 'raspberryPi' | 'sensor' | 'actuator' | 'industrialSwitch' | 'ecu' | 'canBus' | 'linBus' | 'flexray' | 'ethGateway' | 'telematics' | 'infotainment' | 'adas' | 'gps' | 'camera' | 'radar' | 'lidar' | 'isp' | 'dnsProvider' | 'emailService' | 'authProvider' | 'payment' | 'thirdPartyApi' | 'mapsApi' | 'sms' | 'push' | 'ethernet' | 'fiber' | 'wifi' | 'vpnTunnel' | 'mpls' | 'sdwan' | 'serial' | 'usb' | 'bluetooth' | 'zigbee' | 'lorawan' | 'cellular' | 'satellite' | 'datacenter' | 'office' | 'branch' | 'dmz' | 'lan' | 'wan' | 'vlan' | 'privateNet' | 'publicNet' | 'cloudRegion' | 'default'; export type NetworkIconCategory = 'infra' | 'security' | 'server' | 'storage' | 'endpoint' | 'cloud' | 'data' | 'messaging' | 'monitor' | 'iot' | 'auto' | 'external' | 'link' | 'zone'; export interface NetworkIconStyle { fill: string; stroke: string; glyph: string; edge: string; } export interface NetworkIconMeta { kind: NetworkIconKind; label: string; category: NetworkIconCategory; /** True for zone/container shapes (rectangular dashed chrome). */ container?: boolean; }