import type { _NSArray } from "../Foundation/NSArray.js";
import type { _NSCopying } from "../Foundation/NSCopying.js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSNumber } from "../Foundation/NSNumber.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _NSString } from "../Foundation/NSString.js";
export declare class _MTROTASoftwareUpdateProviderClusterQueryImageParams extends _NSObject {
    static alloc(): _MTROTASoftwareUpdateProviderClusterQueryImageParams;
    static new(): _MTROTASoftwareUpdateProviderClusterQueryImageParams;
    init(): _MTROTASoftwareUpdateProviderClusterQueryImageParams;
    vendorID(): _NSNumber;
    setVendorID$(value: _NSNumber): void;
    productID(): _NSNumber;
    setProductID$(value: _NSNumber): void;
    softwareVersion(): _NSNumber;
    setSoftwareVersion$(value: _NSNumber): void;
    protocolsSupported(): _NSArray;
    setProtocolsSupported$(value: _NSArray): void;
    hardwareVersion(): _NSNumber | null;
    setHardwareVersion$(value: _NSNumber | null): void;
    location(): _NSString | null;
    setLocation$(value: _NSString | null): void;
    requestorCanConsent(): _NSNumber | null;
    setRequestorCanConsent$(value: _NSNumber | null): void;
    metadataForProvider(): _NSData | null;
    setMetadataForProvider$(value: _NSData | null): void;
    /**
     * Controls whether the command is a timed command (using Timed Invoke). If nil (the default value), a regular invoke is done for commands that do not require a timed invoke and a timed invoke with some default timed request timeout is done for commands that require a timed invoke. If not nil, a timed invoke is done, with the provided value used as the timed request timeout. The value should be chosen small enough to provide the desired security properties but large enough that it will allow a round-trip from the sever to the client (for the status response and actual invoke request) within the timeout window.
     */
    timedInvokeTimeoutMs(): _NSNumber | null;
    setTimedInvokeTimeoutMs$(value: _NSNumber | null): void;
    /**
     * Controls how much time, in seconds, we will allow for the server to process the command. The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes. If nil, the framework will try to select an appropriate timeout value itself.
     */
    serverSideProcessingTimeout(): _NSNumber | null;
    setServerSideProcessingTimeout$(value: _NSNumber | null): void;
    vendorId(): _NSNumber;
    setVendorId$(value: _NSNumber): void;
    productId(): _NSNumber;
    setProductId$(value: _NSNumber): void;
}
export interface _MTROTASoftwareUpdateProviderClusterQueryImageParams extends _NSCopying {
}
export declare class _MTROtaSoftwareUpdateProviderClusterQueryImageParams extends _MTROTASoftwareUpdateProviderClusterQueryImageParams {
    static alloc(): _MTROtaSoftwareUpdateProviderClusterQueryImageParams;
    static new(): _MTROtaSoftwareUpdateProviderClusterQueryImageParams;
    init(): _MTROtaSoftwareUpdateProviderClusterQueryImageParams;
    softwareVersion(): _NSNumber;
    setSoftwareVersion$(value: _NSNumber): void;
    protocolsSupported(): _NSArray;
    setProtocolsSupported$(value: _NSArray): void;
    hardwareVersion(): _NSNumber | null;
    setHardwareVersion$(value: _NSNumber | null): void;
    location(): _NSString | null;
    setLocation$(value: _NSString | null): void;
    requestorCanConsent(): _NSNumber | null;
    setRequestorCanConsent$(value: _NSNumber | null): void;
    metadataForProvider(): _NSData | null;
    setMetadataForProvider$(value: _NSData | null): void;
    /**
     * Controls whether the command is a timed command (using Timed Invoke). If nil (the default value), a regular invoke is done for commands that do not require a timed invoke and a timed invoke with some default timed request timeout is done for commands that require a timed invoke. If not nil, a timed invoke is done, with the provided value used as the timed request timeout. The value should be chosen small enough to provide the desired security properties but large enough that it will allow a round-trip from the sever to the client (for the status response and actual invoke request) within the timeout window.
     */
    timedInvokeTimeoutMs(): _NSNumber | null;
    setTimedInvokeTimeoutMs$(value: _NSNumber | null): void;
    /**
     * Controls how much time, in seconds, we will allow for the server to process the command. The command will then time out if that much time, plus an allowance for retransmits due to network failures, passes. If nil, the framework will try to select an appropriate timeout value itself.
     */
    serverSideProcessingTimeout(): _NSNumber | null;
    setServerSideProcessingTimeout$(value: _NSNumber | null): void;
}
