import type { NobjcObject } from "objc-js";
import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSError } from "../Foundation/NSError.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _NEVPNConnection } from "./NEVPNConnection.js";
import type { _NEVPNProtocol } from "./NEVPNProtocol.js";
export declare class _NEVPNManager extends _NSObject {
    static alloc(): _NEVPNManager;
    static new(): _NEVPNManager;
    init(): _NEVPNManager;
    /** The singleton NEVPNManager object for the calling process. */
    static sharedManager(): _NEVPNManager;
    /**
     * This function loads the current VPN configuration from the caller's VPN preferences. A block that will be called on the main thread when the load operation is completed. The NSError passed to this block will be nil if the load operation succeeded, non-nil otherwise.
     */
    loadFromPreferencesWithCompletionHandler$(completionHandler: ((error: _NSError) => void) | null): void;
    /**
     * This function removes the VPN configuration from the caller's VPN preferences. If the VPN is enabled, has VPN On Demand enabled, and has VPN On Demand rules, the VPN is disabled and the VPN On Demand rules are de-activated. A block that will be called on the main thread when the remove operation is completed. The NSError passed to this block will be nil if the remove operation succeeded, non-nil otherwise.
     */
    removeFromPreferencesWithCompletionHandler$(completionHandler: ((error: _NSError) => void) | null): void;
    /**
     * This function saves the VPN configuration in the caller's VPN preferences. If the VPN is enabled, has VPN On Demand enabled, and has VPN On Demand rules, the VPN On Demand rules are activated. A block that will be called on the main thread when the save operation is completed. The NSError passed to this block will be nil if the save operation succeeded, non-nil otherwise.
     */
    saveToPreferencesWithCompletionHandler$(completionHandler: ((error: _NSError) => void) | null): void;
    /**
     * This function sets an authorization object that can be used to obtain the authorization rights necessary to modify the system VPN configuration. The AuthorizationRef to use to obtain rights.
     */
    setAuthorization$(authorization: NobjcObject): void;
    /** An array of NEOnDemandRule objects. */
    onDemandRules(): _NSArray;
    setOnDemandRules$(value: _NSArray): void;
    /** Toggles VPN On Demand. */
    onDemandEnabled(): boolean;
    setOnDemandEnabled$(value: boolean): void;
    /** A string containing a description of the VPN. */
    localizedDescription(): _NSString;
    setLocalizedDescription$(value: _NSString): void;
    /**
     * An NEVPNProtocol object containing the protocol-specific portion of the VPN configuration.
     * @deprecated protocolConfiguration
     */
    protocol(): _NEVPNProtocol | null;
    setProtocol$(value: _NEVPNProtocol | null): void;
    /**
     * An NEVPNProtocol object containing the protocol-specific portion of the VPN configuration.
     */
    protocolConfiguration(): _NEVPNProtocol;
    setProtocolConfiguration$(value: _NEVPNProtocol): void;
    /** The NEVPNConnection object used for controlling the VPN tunnel. */
    connection(): _NEVPNConnection;
    /**
     * Toggles the enabled status of the VPN. Setting this property will disable VPN configurations of other apps. This property will be set to NO when other VPN configurations are enabled.
     */
    enabled(): boolean;
    setEnabled$(value: boolean): void;
}
