import type { NobjcObject } from "objc-js";
import type { _VZNetworkBlockDeviceStorageDeviceAttachmentDelegate } from "./VZNetworkBlockDeviceStorageDeviceAttachmentDelegate.js";
import type { _VZStorageDeviceAttachment } from "./VZStorageDeviceAttachment.js";
import type { _NSURL } from "../Foundation/NSURL.js";
import type { VZDiskSynchronizationMode } from "./VZDiskSynchronizationMode.js";
export declare class _VZNetworkBlockDeviceStorageDeviceAttachment extends _VZStorageDeviceAttachment {
    static alloc(): _VZNetworkBlockDeviceStorageDeviceAttachment;
    static new(): _VZNetworkBlockDeviceStorageDeviceAttachment;
    init(): _VZNetworkBlockDeviceStorageDeviceAttachment;
    /**
     * @abstract Check if URL is a valid NBD URL. @param URL The NBD URL to validate. @param error If not nil, assigned with an error describing why the URL is not valid. @discussion See https://github.com/NetworkBlockDevice/nbd/blob/master/doc/uri.md for more detailed descriptions of valid URIs. This method checks that the URL is well-formed, it does not attempt to access the URL.
     */
    static validateURL$error$(URL: _NSURL, error: NobjcObject | null): boolean;
    /**
     * @abstract Initialize the attachment from an NBD Uniform Resource Indicator (URI) represented as an URL. @param URL The URL referring to the NBD server to which the NBD client is to be connected. @param timeout The timeout value in seconds for the connection between the client and server. When the timeout expires, an attempt to reconnect with the server will take place. @param forcedReadOnly If YES, the disk attachment is forced to be read-only, regardless of whether or not the NBD server supports write requests. @param error If not nil, assigned with the error if the initialization failed. @return An initialized `VZNetworkBlockDeviceStorageDeviceAttachment` or nil if there was an error. @discussion The `forcedReadOnly` parameter affects how the NBD client is exposed to the guest operating system by the storage controller. As part of the NBD protocol, whether or not the disk exposed by the NBD client is read-only is advertised by the NBD server during the handshake phase of the protocol. Setting `forcedReadOnly` to YES will force the NBD client to show up as read-only to the guest regardless of whether or not the NBD server advertises itself as read-only.
     */
    initWithURL$timeout$forcedReadOnly$synchronizationMode$error$(URL: _NSURL, timeout: number, forcedReadOnly: boolean, synchronizationMode: VZDiskSynchronizationMode, error: NobjcObject | null): _VZNetworkBlockDeviceStorageDeviceAttachment | null;
    /**
     * @abstract Convenience initializer to create the attachment from an NBD URL. @param URL The URL referring to the NBD server to which the NBD client is to be connected. @param error If not nil, assigned with the error if the initialization failed. @return An initialized `VZNetworkBlockDeviceStorageDeviceAttachment` or nil if there was an error. @discussion This initializer automatically assigns optimized default values for the `timeout`, `forcedReadOnly`, and `synchronizationMode` properties.
     */
    initWithURL$error$(URL: _NSURL, error: NobjcObject | null): _VZNetworkBlockDeviceStorageDeviceAttachment | null;
    /**
     * @abstract URL referring to the NBD server to which the NBD client is to be connected.
     */
    URL(): _NSURL;
    /**
     * @abstract The timeout value in seconds for the connection between the client and server. When the timeout expires, an attempt to reconnect with the server will take place.
     */
    timeout(): number;
    /**
     * @abstract Whether the underlying disk attachment is forced to be read-only. @discussion The `forcedReadOnly` parameter affects how the NBD client is exposed to the guest operating system by the storage controller. As part of the NBD protocol, whether or not the disk exposed by the NBD client is read-only is advertised by the NBD server during the handshake phase of the protocol. Setting `forcedReadOnly` to YES will force the NBD client to show up as read-only to the guest regardless of whether or not the NBD server advertises itself as read-only.
     */
    forcedReadOnly(): boolean;
    /**
     * @abstract The mode in which the NBD client synchronizes data with the NBD server.
     */
    synchronizationMode(): VZDiskSynchronizationMode;
    /** @abstract The attachment's delegate. */
    delegate(): _VZNetworkBlockDeviceStorageDeviceAttachmentDelegate | null;
    setDelegate$(value: _VZNetworkBlockDeviceStorageDeviceAttachmentDelegate | null): void;
}
