/** * NetBox to Shumoku NetworkGraph Converter */ import type { NetworkGraph } from '@shumoku/core/models'; import type { ConnectionData, ConverterOptions, NetBoxCableResponse, NetBoxDeviceResponse, NetBoxInterfaceResponse, NetBoxVirtualMachineResponse, NetBoxVMInterfaceResponse } from './types.js'; /** * Options for hierarchical output generation */ export interface HierarchicalConverterOptions extends ConverterOptions { /** Enable hierarchical output (multiple files) */ hierarchical?: boolean; /** Hierarchy depth: 'site' | 'location' | 'rack' */ hierarchyDepth?: 'site' | 'location' | 'rack'; /** Base path for file references (default: './') */ fileBasePath?: string; } /** * Cross-location link representing a cable between devices in different locations */ export interface CrossLocationLink { fromLocation: string; fromDevice: string; fromPort: string; toLocation: string; toDevice: string; toPort: string; cable: ConnectionData; } /** * Result of hierarchical conversion */ export interface HierarchicalOutput { main: string; files: Map; crossLinks: CrossLocationLink[]; } /** * Convert NetBox data to Shumoku NetworkGraph */ export declare function convertToNetworkGraph(deviceResp: NetBoxDeviceResponse, interfaceResp: NetBoxInterfaceResponse, cableResp: NetBoxCableResponse, options?: ConverterOptions): NetworkGraph; /** * Convert NetBox data with VMs to Shumoku NetworkGraph */ export declare function convertToNetworkGraphWithVMs(deviceResp: NetBoxDeviceResponse, interfaceResp: NetBoxInterfaceResponse, cableResp: NetBoxCableResponse, vmResp: NetBoxVirtualMachineResponse, vmInterfaceResp: NetBoxVMInterfaceResponse, options?: ConverterOptions): NetworkGraph; /** * Generate YAML string from NetworkGraph */ export declare function toYaml(graph: NetworkGraph): string; /** * Convert NetBox data to hierarchical YAML output */ export declare function convertToHierarchicalYaml(deviceResp: NetBoxDeviceResponse, interfaceResp: NetBoxInterfaceResponse, cableResp: NetBoxCableResponse, options?: HierarchicalConverterOptions): HierarchicalOutput; //# sourceMappingURL=converter.d.ts.map