import type { _NEVPNManager } from "./NEVPNManager.js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSError } from "../Foundation/NSError.js";
import type { NETunnelProviderRoutingMethod } from "./NETunnelProviderRoutingMethod.js";
export declare class _NETunnelProviderManager extends _NEVPNManager {
    static alloc(): _NETunnelProviderManager;
    static new(): _NETunnelProviderManager;
    init(): _NETunnelProviderManager;
    /**
     * @method loadAllFromPreferencesWithCompletionHandler: @discussion This function asynchronously reads all of the NETunnelProvider configurations created by the calling app that have previously been saved to disk and returns them as NETunnelProviderManager objects. @param completionHandler A block that takes an array NETunnelProviderManager objects. The array passed to the block may be empty if no NETunnelProvider configurations were successfully read from the disk. The NSError passed to this block will be nil if the load operation succeeded, non-nil otherwise.
     */
    static loadAllFromPreferencesWithCompletionHandler$(completionHandler: ((managers: _NSArray, error: _NSError) => void) | null): void;
    /**
     * @method forPerAppVPN @discussion Create a NETunnelProviderManager instance that is used to manage a per-app VPN configuration.
     */
    static forPerAppVPN(): _NETunnelProviderManager;
    /**
     * @method copyAppRules @discussion This function returns an array of NEAppRule objects.
     */
    copyAppRules(): _NSArray | null;
    /**
     * @property routingMethod @discussion The method by which network traffic is routed to the tunnel. The default is NETunnelProviderRoutingMethodDestinationIP.
     */
    routingMethod(): NETunnelProviderRoutingMethod;
    /**
     * @property safariDomains @discussion An array of domain strings. Only applies to per-app VPN configurations. When the per-app VPN is enabled and the user navigates in Safari to a web site within one of these domains, the web site network traffic is routed through the per-app VPN.
     */
    safariDomains(): _NSArray;
    setSafariDomains$(value: _NSArray): void;
    /**
     * @property mailDomains @discussion An array of domain strings. Only applies to per-app VPN configurations. When the per-app VPN is enabled, connections from the Mail app to mail servers within one of these domains are routed through the per-app VPN.
     */
    mailDomains(): _NSArray;
    setMailDomains$(value: _NSArray): void;
    /**
     * @property calendarDomains @discussion An array of domain strings. Only applies to per-app VPN configurations. When the per-app VPN is enabled, connections from the Calendar app to calendar servers within one of these domains are routed through the per-app VPN.
     */
    calendarDomains(): _NSArray;
    setCalendarDomains$(value: _NSArray): void;
    /**
     * @property contactsDomains @discussion An array of domain strings. Only applies to per-app VPN configurations. When the per-app VPN is enabled, connections from the Contacts app to contacts servers within one of these domains are routed through the per-app VPN.
     */
    contactsDomains(): _NSArray;
    setContactsDomains$(value: _NSArray): void;
    /**
     * @property appRules @property An array of NEAppRule objects. Only applies to per-app VPN configurations. Network traffic originating from apps matching one of these rules is routed through the per-app VPN.
     */
    appRules(): _NSArray;
    setAppRules$(value: _NSArray): void;
    /**
     * @property excludedDomains @property An array of domain strings. Only applies to per-app VPN configurations. When the per-app VPN is enabled, connections to servers within one of these domains are excluded from the per-app VPN.
     */
    excludedDomains(): _NSArray;
    setExcludedDomains$(value: _NSArray): void;
    /**
     * @property associatedDomains @property An array of domain strings. Only applies to per-app VPN configurations. HTTP requests to download the Apple App Site Association files for domains in this list are routed through the per-app VPN.
     */
    associatedDomains(): _NSArray;
    setAssociatedDomains$(value: _NSArray): void;
}
