import type { NobjcObject } from "objc-js";
import type { _NSError } from "../Foundation/NSError.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { _BEProcessCapability } from "./BEProcessCapability.js";
import type { _BEProcessCapabilityGrant } from "./BEProcessCapabilityGrant.js";
export declare class _BENetworkingProcess extends _NSObject {
    static alloc(): _BENetworkingProcess;
    static new(): _BENetworkingProcess;
    init(): _BENetworkingProcess;
    /**
     * Asynchronously finds an existing network extension process or launches a one. This initializer finds an existing networking extension process. If it’s unable to find an existing process, it launches a new extension process. - Parameters: - `interruptionHandler` : A block that is called if the extension process terminates. - `completion` : A block called with a new ``BENetworkingProcess`` when the extension process has launched or with an error.
     */
    static networkProcessWithInterruptionHandler$completion$(interruptionHandler: () => void, completion: ((process: _BENetworkingProcess, error: _NSError) => void) | null): void;
    /**
     * Asynchronously launches a network extension process. This initializer launches a new network extension process with the provided bundle identifier. - Parameters: - `bundleID` : The bundle identifier of the network extension process to launch. - `interruptionHandler` : A block that is called if the extension process terminates. - `completion` : A block called with a new ``BENetworkingProcess`` when the extension process has launched or with an error.
     */
    static networkProcessWithBundleID$interruptionHandler$completion$(bundleID: _NSString, interruptionHandler: () => void, completion: ((process: _BENetworkingProcess, error: _NSError) => void) | null): void;
    /**
     * Stops the extension process. When you call this method, you tell the system your app no longer needs this extension process. The system will terminate the extension process.
     */
    invalidate(): void;
    /**
     * Creates a new libXPC connection to the extension process. This method creates a connection to the extension process and returns it. If it is not possible to make an XPC connection, this method will return nil and populate the `error` out param. - Returns: The connection object representing the created libXPC connection or nil.
     */
    makeLibXPCConnectionError$(error: NobjcObject | null): _NSObject | null;
    /**
     * Grants the specified capability to the process. This method grants the specified capability to the process or returns nil and an error if it can not be granted. - Parameters: - capability: The capability to be granted - error: The error out param populated if the capability cannot be granted. - Returns: an invalidatable grant object that represents the granted capability.
     */
    grantCapability$error$(capability: _BEProcessCapability, error: NobjcObject | null): _BEProcessCapabilityGrant | null;
    /**
     * Grants the specified capability to the process with invalidation handler. This method grants the specified capability to the process or returns nil and an error if it can not be granted. - Parameters: - capability: The capability to be granted - error: The error out param populated if the capability cannot be granted. - invalidationHandler: The invalidation handler - Returns: an invalidatable grant object that represents the granted capability.
     */
    grantCapability$error$invalidationHandler$(capability: _BEProcessCapability, error: NobjcObject | null, invalidationHandler: () => void): _BEProcessCapabilityGrant | null;
}
