import type { NobjcObject } from "objc-js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _NWEndpoint } from "./NWEndpoint.js";
import type { _NWHostEndpoint } from "./NWHostEndpoint.js";
import type { _NWPath } from "./NWPath.js";
import type { _NWTCPConnection } from "./NWTCPConnection.js";
import type { _NWTLSParameters } from "./NWTLSParameters.js";
import type { _NWUDPSession } from "./NWUDPSession.js";
export declare class _NEProvider extends _NSObject {
    static alloc(): _NEProvider;
    static new(): _NEProvider;
    init(): _NEProvider;
    /**
     * @method startSystemExtensionMode @discussion Start the Network Extension machinery in a system extension (.system bundle). This class method will cause the calling system extension to start handling requests from nesessionmanager to instantiate appropriate NEProvider sub-class instances. The system extension must declare a mapping of Network Extension extension points to NEProvider sub-class instances in its Info.plist: Key: NetworkExtension Type: Dictionary containing information about the NetworkExtension capabilities of the system extension. Key: NEProviderClasses Type: Dictionary mapping NetworkExtension extension point identifiers to NEProvider sub-classes Example: <key>NetworkExtension</key> <dict> <key>NEProviderClasses</key> <dict> <key>com.apple.networkextension.app-proxy</key> <string>$(PRODUCT_MODULE_NAME).AppProxyProvider</string> <key>com.apple.networkextension.filter-data</key> <string>$(PRODUCT_MODULE_NAME).FilterDataProvider</string> </dict> </dict> This method should be called as early as possible after the system extension starts.
     */
    static startSystemExtensionMode(): void;
    /**
     * @method sleepWithCompletionHandler: @discussion This function is called by the framework when the system is about to go to sleep. Subclass developers can override this method to implement custom behavior such as closing connections or pausing some network activity. @param completionHandler When the method is finished handling the sleep event it must execute this completion handler.
     */
    sleepWithCompletionHandler$(completionHandler: () => void): void;
    /**
     * @method wake @discussion This function is called by the framework immediately after the system wakes up from sleep. Subclass developers can override this method to implement custom behavior such as re-establishing connections or resuming some network activity.
     */
    wake(): void;
    /**
     * @method createTCPConnectionToEndpoint:enableTLS:TLSParameters:delegate: @discussion This function can be called by subclass implementations to create a TCP connection to a given network endpoint. This function should not be overridden by subclasses. @param remoteEndpoint An NWEndpoint object that specifies the remote network endpoint to connect to. @param enableTLS A flag indicating if a TLS session should be negotiated on the connection. @param TLSParameters A set of optional TLS parameters. Only valid if enableTLS is YES. If TLSParameters is nil, the default system parameters will be used for TLS negotiation. @param delegate An object to use as the connections delegate. This object should conform to the NWTCPConnectionAuthenticationDelegate protocol. @return An NWTCPConnection object.
     * @deprecated Use nw_connection_t in Network framework instead
     */
    createTCPConnectionToEndpoint$enableTLS$TLSParameters$delegate$(remoteEndpoint: _NWEndpoint, enableTLS: boolean, TLSParameters: _NWTLSParameters | null, delegate: NobjcObject | null): _NWTCPConnection;
    /**
     * @method createUDPSessionToEndpoint:fromEndpoint: @discussion This function can be called by subclass implementations to create a UDP session between a local network endpoint and a remote network endpoint. This function should not be overridden by subclasses. @param remoteEndpoint An NWEndpoint object that specifies the remote endpoint to which UDP datagrams will be sent by the UDP session. @param localEndpoint An NWHostEndpoint object that specifies the local IP address endpoint to use as the source endpoint of the UDP session. @return An NWUDPSession object.
     * @deprecated Use nw_connection_t in Network framework instead
     */
    createUDPSessionToEndpoint$fromEndpoint$(remoteEndpoint: _NWEndpoint, localEndpoint: _NWHostEndpoint | null): _NWUDPSession;
    /**
     * @method displayMessage:completionHandler: @discussion This method can be called by subclass implementations to display a message to the user. @param message The message to be displayed. @param completionHandler A block that is executed when the user acknowledges the message. If this method is called on a NEFilterDataProvider instance or the message cannot be displayed, then the completion handler block will be executed immediately with success parameter set to NO. If the message was successfully displayed to the user, then the completion handler block is executed with the success parameter set to YES when the user dismisses the message.
     * @deprecated UILocalNotification
     */
    displayMessage$completionHandler$(message: _NSString, completionHandler: (success: boolean) => void): void;
    /**
     * @property defaultPath @discussion The current default path for connections created by the provider. Use KVO to watch for network changes.
     * @deprecated Use nw_path_monitor_t in Network framework instead
     */
    defaultPath(): _NWPath;
}
