import { N as NetworkNode, a as NetworkEdge, D as DiagramDocument } from './index-CD1VEhzs.mjs'; import '@xyflow/react'; interface InventoryRackDTO { id: string | number; name: string; status?: { value?: string; } | string; u_height?: number; units?: number; facility_id?: string | number; serial?: string; asset_tag?: string; site?: { name?: string; } | string; role?: { name?: string; } | string; tenant?: { name?: string; } | string; } interface InventoryDeviceDTO { id: string | number; name: string; status?: { value?: string; } | string; device_type?: { u_height?: number; model?: string; manufacturer?: { name?: string; }; }; model?: string; manufacturer?: string; device_role?: { name?: string; } | string; u_height?: number; position?: number; face?: 'front' | 'rear'; /** * Rack reference: `{ id }`, `{ name }` (resolved against the racks by name in * {@link inventoryToNetworkDiagram}), or a bare rack id. */ rack?: { id?: string | number; name?: string; } | string | number; primary_ip4?: { address?: string; } | string; primary_ip6?: { address?: string; } | string; site?: { name?: string; } | string; } interface InventoryCableDTO { id: string | number; /** Cable type, e.g. `{ label: 'Cat6' }`, `{ value: 'smf' }` or `'power'`. */ type?: { label?: string; value?: string; } | string; bandwidth?: string; length?: number; /** Unit of `length` (`m`, `cm`, `ft`, `in`, `km`, `mi`); enables `data.lengthCm`. */ length_unit?: { value?: string; label?: string; } | string; color?: string; status?: { value?: string; } | string; /** * A-side termination: `{ device, name }` where `device` is `{ id }`, * `{ name }`, or a bare id; or a bare device reference string. */ termination_a?: { device?: { id?: string | number; name?: string; } | string | number; name?: string; } | string; termination_b?: { device?: { id?: string | number; name?: string; } | string | number; name?: string; } | string; } /** * Convert inventory rack data to NetworkNode */ declare const inventoryRackToNetworkNode: (rack: InventoryRackDTO) => NetworkNode; /** * Convert inventory device data to NetworkNode. * * `parentId` is only set when the rack is referenced by id (`{ id }` or a bare * id); a name-only `{ name }` rack reference is resolved against the racks by * {@link inventoryToNetworkDiagram}, never minted as `rack-undefined`. * `uPosition` is only set for a racked device with a positive `position`. */ declare const inventoryDeviceToNetworkNode: (device: InventoryDeviceDTO) => NetworkNode; /** * Convert inventory cable data to NetworkEdge. * * Device references are minted as node ids exactly like * {@link inventoryDeviceToNetworkNode} (`device-`, including string/UUID * ids). The edge `type` follows the cable type (`power` → `power`, * fibre/AOC → `fiber`, any other named type → `ethernet`; a missing type keeps * the historical `fiber`). Returns `null` when either end has no device. */ declare const inventoryCableToNetworkEdge: (cable: InventoryCableDTO, resolvedEndpoints?: { source: string; target: string; }) => NetworkEdge | null; /** * Convert inventory data to network diagram format. * * Cable ends resolve against the converted devices — by id (number, numeric * string, string/UUID, or an explicit `device-` node id) and then by device * name. A cable whose either end does not resolve to a device in `devices` is * dropped rather than emitted dangling. Devices whose rack is referenced by * name only are parented to the rack with that name. */ declare const inventoryToNetworkDiagram: (data: { racks: InventoryRackDTO[]; devices: InventoryDeviceDTO[]; cables: InventoryCableDTO[]; }) => { nodes: NetworkNode[]; edges: NetworkEdge[]; }; /** * Convert inventory data directly into the canonical DiagramDocument model. */ declare const inventoryToDiagramDocument: (data: { racks: InventoryRackDTO[]; devices: InventoryDeviceDTO[]; cables: InventoryCableDTO[]; }) => DiagramDocument; /** * Generate simple layout positions for nodes array */ declare const generateLayout: (nodes: NetworkNode[]) => NetworkNode[]; export { DiagramDocument, type InventoryCableDTO, type InventoryDeviceDTO, type InventoryRackDTO, NetworkEdge, NetworkNode, generateLayout, inventoryCableToNetworkEdge, inventoryDeviceToNetworkNode, inventoryRackToNetworkNode, inventoryToDiagramDocument, inventoryToNetworkDiagram };