import type { _NSObject } from "../Foundation/NSObject.js";
import type { _AVBInterface } from "./AVBInterface.js";
export declare class _AVBCentralManager extends _NSObject {
    static alloc(): _AVBCentralManager;
    static new(): _AVBCentralManager;
    init(): _AVBCentralManager;
    /**
     * This method is used to allocate a dynamic Entity ID . The allocated dynamic entity ID or AVBNullEUI64 if allocation failed. The entity ID allocated by this call can be used for both publishing an Entity with the AVB17221EntityDiscovery class or as a controllerID for the AVB17221ACMPMessage and AVB17221AECPMessage.
     */
    static nextAvailableDynamicEntityID(): number;
    /**
     * This method is used to release a previously allocated dynamic Entity ID. The entity ID to release that was previously allocated by +nextAvailableDynamicEntityID .
     */
    static releaseDynamicEntityID$(entityID: number): void;
    /**
     * This method is used to allocate a dynamic Entity Model ID . The allocated dynamic entity model ID or AVBNullEUI64 if allocation failed. The entity model ID allocated by this call can be used for publishing an Entity with the AVB17221EntityDiscovery class when using a dynamically generated or modified model.
     */
    static nextAvailableDynamicEntityModelID(): number;
    /**
     * This method is used to release a previously allocated dynamic Entity Model ID. The entity ID to release that was previously allocated by +nextAvailableDynamicEntityModelID .
     */
    static releaseDynamicEntityModelID$(entityModelID: number): void;
    /**
     * This method triggers the IOKit matching for the network controllers. This is usually called by a subclass as the last thing in it's init method. This call is broken out of the AVBCentralManager's init method so that subclasses can finish their setup before calling it.
     */
    startControllerMatching(): void;
    /**
     * This method is called when an AVBInterface object is created for a NIC, either when the central manager is first started up or when the NIC is added later. An instance of an AVBInterface subclass (as appropriate for the NIC) which has been added for the discovered NIC. The AVBCentralManager maintains it's own internal reference to the interface object until didRemoveInterface: is called with the same interface object, subclasses do not need to maintain another reference to this. A subclass does not need to call the AVBCentralManager implementation. Note this method is not called on the main thread and is not safe for performing UI actions.
     */
    didAddInterface$(interface_: _AVBInterface): void;
    /**
     * This method is called when a NIC has been removed from the system and the central manager is cleaning it up. An instance of an AVBInterface subclass (as appropriate for the NIC) which is being removed for the discovered NIC. Note this method is not called on the main thread and is not safe for performing UI actions.
     */
    didRemoveInterface$(interface_: _AVBInterface): void;
    /**
     * This method is used to control if the central manager will create and process AVBInterface objects for non streaming interfaces. YES for only AVB Enabled interfaces or NO for all interfaces. The default value returned is YES and as such didAddInterface: will be called for all AVB Enabled network interfaces only.
     */
    streamingEnabledInterfacesOnly(): boolean;
}
