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";
export declare class _NERelayManager extends _NSObject {
    static alloc(): _NERelayManager;
    static new(): _NERelayManager;
    init(): _NERelayManager;
    /**
     * @method sharedManager @return The singleton NERelayManager object for the calling process.
     */
    static sharedManager(): _NERelayManager;
    /**
     * @method loadAllManagersFromPreferencesWithCompletionHandler: @discussion This function asynchronously reads all of the NERelay configurations created by the calling app that have previously been saved to disk and returns them as NERelayManager objects. @param completionHandler A block that takes an array NERelayManager objects. The array passed to the block may be empty if no NERelay 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 loadAllManagersFromPreferencesWithCompletionHandler$(completionHandler: ((managers: _NSArray, error: _NSError) => void) | null): void;
    /**
     * @method loadFromPreferencesWithCompletionHandler: @discussion This function loads the current relay configuration from the caller's relay preferences. @param completionHandler A block that will be called 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;
    /**
     * @method removeFromPreferencesWithCompletionHandler: @discussion This function removes the relay configuration from the caller's relay preferences. If the relay is enabled, the relay becomes disabled. @param completionHandler A block that will be called 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;
    /**
     * @method saveToPreferencesWithCompletionHandler: @discussion This function saves the relay configuration in the caller's relay preferences. If the relay are enabled, they will become active. @param completionHandler A block that will be called 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;
    /**
     * @method getLastClientErrors @discussion This function will get errors that the client detected while using this relay configuration within the specified time period. Errors will be from the NERelayClientErrorDomain and the NERelayManagerClientErrorNone value will be set for successful connections. @param seconds A NSTimeInterval that specifies how many seconds to report errors for. The maximum supported value is 24 hours and any larger values will be automatically reduced to 24 hours. @param completionHandler A block that will be called when once the errors have been collected. The NSArray will contain a list of NERelayManagerClientError values detected within the last number of seconds as specified by the "seconds" parameter. The values will be ordered from the error most recently detected to the oldest. The error value of NERelayManagerClientErrorNone indicates the last successful use of the relay without error. The NSArray will be empty if there are no values detected within the specified time period or nil if there was a problem in retrieving the errors.
     */
    getLastClientErrors$completionHandler$(seconds: number, completionHandler: ((errors: _NSArray) => void) | null): void;
    /**
     * @property localizedDescription @discussion A string containing a description of the relay.
     */
    localizedDescription(): _NSString | null;
    setLocalizedDescription$(value: _NSString | null): void;
    /** @property enabled @discussion Toggles the enabled status of the relay. */
    enabled(): boolean;
    setEnabled$(value: boolean): void;
    /**
     * @property uiToggleEnabled @discussion Determines if the user will have the ability to enable and disable the relay
     */
    UIToggleEnabled(): boolean;
    setUIToggleEnabled$(value: boolean): void;
    /**
     * @property allowDNSFailover @discussion Determines if DNS queries that fail over relay can fallback to default DNS
     */
    allowDNSFailover(): boolean;
    setAllowDNSFailover$(value: boolean): void;
    /**
     * @property relays @discussion An array of relay configurations describing one or more relay hops.
     */
    relays(): _NSArray | null;
    setRelays$(value: _NSArray | null): void;
    /**
     * @property matchDomains @discussion An array of strings containing domain names. If this property is non-nil, the relay will be used to access hosts within the specified domains. If this and the match FQDNs property is nil, the relay will be used for all domains.
     */
    matchDomains(): _NSArray | null;
    setMatchDomains$(value: _NSArray | null): void;
    /**
     * @property matchFQDNs @discussion An array of strings containing Fully Qualified Domain Names (FQDNs). If this property is non-nil, the relay will be used to access the specified hosts. If this and the matchDomains property is nil, the relay will be used for all domains.
     */
    matchFQDNs(): _NSArray | null;
    setMatchFQDNs$(value: _NSArray | null): void;
    /**
     * @property excludedDomains @discussion An array of strings containing domain names. If the destination host name of a connection shares a suffix with one of these strings then the relay will not be used.
     */
    excludedDomains(): _NSArray | null;
    setExcludedDomains$(value: _NSArray | null): void;
    /**
     * @property excludedFQDNs @discussion An array of strings containing Fully Qualified Domain Names (FQDNs). If the destination host matches one of these strings then the relay will not be used. An excluded FQDN takes priority over the matchDomain property. This means the relay will not be used if the hostname matches an FQDN in this array even if the matchDomains contains a domain that would have been considered a match.
     */
    excludedFQDNs(): _NSArray | null;
    setExcludedFQDNs$(value: _NSArray | null): void;
    /**
     * @property onDemandRules @discussion An array of NEOnDemandRule objects. If nil, the associated relay will always apply. If non-nil, the array describes the networks on which the relay should be used or not.
     */
    onDemandRules(): _NSArray | null;
    setOnDemandRules$(value: _NSArray | null): void;
}
