import { IKosDataModel, IKosIdentifiable, IKosModelContainer, IKosModelHolder, KosCreationContext, PublicModelInterface } from '../../../core';
import { NetworkInterfaceModel } from './network-interface-model';
import { NetworkInterfaceContainerOptions } from './types';
export declare const MODEL_TYPE = "network-interface-container-model";
/**
 * NetworkInterfaceContainer - Centralized management of multiple network interfaces on KOS devices.
 *
 * The NetworkInterfaceContainer model provides comprehensive management of all network interfaces
 * available on a KOS device, including automatic discovery, categorization, and real-time updates.
 * This container model is essential for applications that need to manage multiple network interfaces,
 * build network configuration screens, or monitor overall network connectivity status.
 *
 * ## Key Features
 * - **Automatic Interface Discovery** - Loads and manages all available network interfaces from the device
 * - **Category-Based Indexing** - Organizes interfaces by category (INTERNAL, INTEGRATION, EXTERNAL, NONE)
 * - **Real-Time Refresh** - Updates interface data with current network state
 * - **Unified Interface Management** - Single point of access for all network interface operations
 * - **Dynamic Interface Tracking** - Handles interface addition/removal as network state changes
 * - **Service Integration** - Automatically fetches interface data from KOS network services
 *
 * ## Interface Categories
 * The container automatically organizes interfaces into categories:
 * - **EXTERNAL** - User-facing interfaces (WiFi adapters, Ethernet ports)
 * - **INTERNAL** - System interfaces (loopback, virtual interfaces)
 * - **INTEGRATION** - Integration-specific network interfaces
 * - **NONE** - Uncategorized interfaces
 *
 * ## Common Use Cases
 * - **Network Configuration UI** - Build comprehensive network settings interfaces
 * - **System Monitoring** - Track overall network connectivity and interface health
 * - **Interface Selection** - Allow users to choose from available network interfaces
 * - **Network Diagnostics** - Provide detailed system-wide network interface information
 * - **Automated Network Management** - Programmatically manage multiple interfaces
 *
 * @example Basic Usage
 * ```typescript
 * const networkContainer = NetworkInterfaceContainer.instance('system-interfaces')
 *   .build();
 *
 * // Access all network interfaces and get specific interface
 * const allInterfaces = networkContainer.models;
 * const ethInterface = networkContainer.getModel('eth0');
 * ```
 *
 * @group KOS Model
 * @category Network Interfaces
 * @interface
 * @useDeclaredType
 *
 * @see {@link NetworkInterface} - Individual network interface model
 * @see {@link NetworkInterfaceOptions} - Network interface configuration options
 * @see {@link getNetworkInterfaces} - Service function for loading interface data
 */
export type NetworkInterfaceContainerModel = PublicModelInterface<NetworkInterfaceContainerModelImpl>;
/**
 * @ignore
 * @internal
 */
export declare class NetworkInterfaceContainerModelImpl implements IKosIdentifiable, IKosModelHolder<NetworkInterfaceModel>, IKosDataModel {
    /** Unique identifier for the container model instance */
    id: string;
    /** Context logger for debugging and network interface operations */
    private logger;
    /** Container for managing NetworkInterface model instances with category indexing */
    private _models;
    constructor(modelId: string, options: NetworkInterfaceContainerOptions, context: KosCreationContext);
    getModel(id: string): NetworkInterfaceModel | undefined;
    get models(): IKosModelContainer<NetworkInterfaceModel>;
    get data(): NetworkInterfaceModel[];
    addModel(model: NetworkInterfaceModel): void;
    removeModel(id: string): void;
    /**
     * @internal
     */
    init(): Promise<void>;
    refreshInterfaces(): Promise<void>;
    /**
     * @internal
     */
    load(): Promise<void>;
}
//# sourceMappingURL=network-interface-container-model.d.ts.map