import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSSecureCoding } from "../Foundation/NSSecureCoding.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _NEProxySettings } from "./NEProxySettings.js";
export declare class _NEVPNProtocol extends _NSObject {
    static alloc(): _NEVPNProtocol;
    static new(): _NEVPNProtocol;
    init(): _NEVPNProtocol;
    /**
     * @property serverAddress @discussion The VPN server. Depending on the protocol, may be an IP address, host name, or URL.
     */
    serverAddress(): _NSString;
    setServerAddress$(value: _NSString): void;
    /**
     * @property username @discussion The username component of the VPN authentication credential.
     */
    username(): _NSString;
    setUsername$(value: _NSString): void;
    /**
     * @property passwordReference @discussion The password component of the VPN authentication credential. The value is a persistent reference to a keychain item with the kSecClassGenericPassword class.
     */
    passwordReference(): _NSData;
    setPasswordReference$(value: _NSData): void;
    /**
     * @property identityReference @discussion The certificate and private key component of the VPN authentication credential. The value is a persistent reference to a keychain item with the kSecClassIdentity class.
     */
    identityReference(): _NSData;
    setIdentityReference$(value: _NSData): void;
    /**
     * @property identityData @discussion The PKCS12 data for the VPN authentication identity. The value is a NSData in PKCS12 format.
     */
    identityData(): _NSData;
    setIdentityData$(value: _NSData): void;
    /**
     * @property identityDataPassword @discussion The password to be used to decrypt the PKCS12 identity data.
     */
    identityDataPassword(): _NSString;
    setIdentityDataPassword$(value: _NSString): void;
    /**
     * @property disconnectOnSleep @discussion If YES, the VPN connection will be disconnected when the device goes to sleep. The default is NO.
     */
    disconnectOnSleep(): boolean;
    setDisconnectOnSleep$(value: boolean): void;
    /**
     * @property proxySettings @discussion An NEProxySettings object containing the proxy settings to use for connections routed through the tunnel.
     */
    proxySettings(): _NEProxySettings;
    setProxySettings$(value: _NEProxySettings): void;
    /**
     * @property includeAllNetworks @discussion If this property is set to YES then all network traffic is routed through the tunnel, with some exclusions. Several of the exclusions can be controlled with the excludeLocalNetworks, excludeCellularServices, excludeAPNs and excludeDeviceCommunication properties. See the documentation for those properties. The following traffic is always excluded from the tunnel: - Traffic necessary for connecting and maintaining the device's network connection, such as DHCP. - Traffic necessary for connecting to captive networks. - Certain cellular services traffic that is not routable over the internet and is instead directly routed to the cellular network. See the excludeCellularServices property for more details. - Network communication with a companion device such as a watchOS device. The default value of this property is NO.
     */
    includeAllNetworks(): boolean;
    setIncludeAllNetworks$(value: boolean): void;
    /**
     * @property excludeLocalNetworks @discussion If YES, all traffic destined for local networks will be excluded from the tunnel. The default is NO on macOS and YES on iOS.
     */
    excludeLocalNetworks(): boolean;
    setExcludeLocalNetworks$(value: boolean): void;
    /**
     * @property excludeCellularServices @discussion If includeAllNetworks is set to YES and this property is set to YES, then internet-routable network traffic for cellular services (VoLTE, Wi-Fi Calling, IMS, MMS, Visual Voicemail, etc.) is excluded from the tunnel. Note that some cellular carriers route cellular services traffic directly to the carrier network, bypassing the internet. Such cellular services traffic is always excluded from the tunnel. The default value of this property is YES.
     */
    excludeCellularServices(): boolean;
    setExcludeCellularServices$(value: boolean): void;
    /**
     * @property excludeAPNs @discussion If includeAllNetworks is set to YES and this property is set to YES, then network traffic for the Apple Push Notification service (APNs) is excluded from the tunnel. The default value of this property is YES.
     */
    excludeAPNs(): boolean;
    setExcludeAPNs$(value: boolean): void;
    /**
     * @property excludeDeviceCommunication @discussion If includeAllNetworks is set to YES and this property is set to YES, then network traffic used for communicating with devices connected via USB or Wi-Fi is excluded from the tunnel. For example, Xcode uses a network tunnel to communicate with connected development devices like iPhone, iPad and TV. The default value of this property is YES.
     */
    excludeDeviceCommunication(): boolean;
    setExcludeDeviceCommunication$(value: boolean): void;
    /**
     * @property enforceRoutes @discussion If YES, route rules for this tunnel will take precendence over any locally-defined routes. The default is NO.
     */
    enforceRoutes(): boolean;
    setEnforceRoutes$(value: boolean): void;
    /**
     * @property sliceUUID @discussion Identification string of the associated Cellular slice. If present, VPN tunnel will be scoped to the associated Cellular slice whenever slice is active. Otherwise, VPN tunnel will fallback onto the primary interface.
     */
    sliceUUID(): _NSString;
    setSliceUUID$(value: _NSString): void;
}
export interface _NEVPNProtocol extends _NSCopying, _NSSecureCoding {
}
