import { NetworkInterfaceOptions } from './types';
import { EthernetData, Ip44Settings, NetworkInterfaceCategory, NetworkInterfaceData, WifiData } from './services';
import { IKosDataModel, IKosIdentifiable, KosCreationContext, PublicModelInterface } from '../../../core';

export declare const MODEL_TYPE = "network-interface-model";
/**
 * NetworkInterface - Network interface management and monitoring for KOS devices.
 *
 * The NetworkInterface model provides comprehensive network interface management capabilities, including
 * WiFi and Ethernet configuration, IP settings, and real-time network state monitoring. This model is
 * essential for applications that need to display network status, configure network connections, or
 * manage network interfaces on KOS devices.
 *
 * ## Key Features
 * - **Network Interface Discovery** - Automatically discovers and tracks available network interfaces
 * - **WiFi Management** - Access WiFi connection details, signal strength, and access point information
 * - **Ethernet Monitoring** - Track Ethernet connection status, speed, and duplex settings
 * - **IP Configuration** - Monitor and manage IPv4 settings including addresses, gateways, and DNS
 * - **Connection State Tracking** - Real-time monitoring of network device states and connectivity
 * - **Hardware Information** - Access to MAC addresses, MTU settings, and device capabilities
 *
 * ## Network Interface Categories
 * The model categorizes interfaces for easier management:
 * - **INTERNAL** - Internal system interfaces (loopback, etc.)
 * - **INTEGRATION** - Integration-specific interfaces
 * - **EXTERNAL** - User-facing network interfaces (WiFi, Ethernet)
 * - **NONE** - Uncategorized interfaces
 *
 * ## Common Use Cases
 * - **Network Status Display** - Show current connection status and network details in UI
 * - **Connection Management** - Allow users to view and configure network settings
 * - **Network Diagnostics** - Provide detailed network interface information for troubleshooting
 * - **System Integration** - Monitor network connectivity for automated systems
 * - **Configuration Interfaces** - Build network configuration screens with current state
 *
 * @interface
 * @example Basic Usage
 * ```typescript
 * const networkInterface = NetworkInterface.instance('eth0')
 *   .options({
 *     name: 'eth0',
 *     type: 'ethernet',
 *     configured: true,
 *     category: 'EXTERNAL'
 *   })
 *   .build();
 *
 * console.log(networkInterface.name); // 'eth0'
 * console.log(networkInterface.configured); // true
 * ```
 *
 * @group KOS Model
 * @category Network Interfaces
 * @useDeclaredType
 *
 * @see {@link NetworkInterfaceContainer} - Container model for managing multiple network interfaces
 * @see {@link NetworkInterfaceOptions} - Configuration options interface
 * @see {@link EthernetData} - Ethernet-specific interface data
 * @see {@link WifiData} - WiFi-specific interface data
 * @see {@link Ip44Settings} - IPv4 configuration settings
 */
export type NetworkInterfaceModel = PublicModelInterface<NetworkInterfaceModelImpl>;
/**
 * @ignore
 * @internal
 */
export declare class NetworkInterfaceModelImpl implements IKosDataModel, IKosIdentifiable, NetworkInterfaceData {
    /** Unique identifier for the model instance */
    id: string;
    /** Network interface name (e.g., 'eth0', 'wlan0', 'lo') */
    name: string;
    /** Interface type identifier (e.g., 'ethernet', 'wifi', 'loopback') */
    type: string;
    /** NetworkManager device state code indicating connection status */
    nmdevicestate: number;
    /** Hardware MAC address of the network interface */
    hwaddress: string;
    /** Maximum Transmission Unit size for the interface */
    mtu: number;
    /** Whether the interface is currently configured and active */
    configured: boolean;
    /** WiFi-specific connection data including SSID, signal strength, and security */
    wifi?: WifiData;
    /** Ethernet-specific connection data including carrier status, speed, and duplex */
    ethernet?: EthernetData;
    /** IPv4 network settings including address, gateway, and DNS configuration */
    ip4settings?: Ip44Settings;
    /** Interface categorization for organizational purposes */
    category: NetworkInterfaceCategory;
    private logger;
    constructor(modelId: string, options: NetworkInterfaceOptions, context: KosCreationContext);
    updateModel(options: NetworkInterfaceOptions): void;
    /**
     * @internal
     */
    init(): Promise<void>;
    /**
     * @internal
     */
    load(): Promise<void>;
}
//# sourceMappingURL=network-interface-model.d.ts.map