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";
import type { MTROTAImageDigestType } from "./MTROTAImageDigestType.js";
export declare class _MTROTAHeader extends _NSObject {
    static alloc(): _MTROTAHeader;
    static new(): _MTROTAHeader;
    init(): _MTROTAHeader;
    /**
     * Initialize the MTROTAHeader with the given Matter OTA software image data (as defined in the "Over-the-Air (OTA) Software Update File Format" section of the Matter specification). The provided data is expected to point to a large enough initial chunk of an OTA software image that it includes the entire header (e.g. the entire image). If the passed-in data is too small and does not contain the entire OTA image header, initWithData will return nil and the caller should try creating a new MTROTAHeader object and initializing it with a larger chunk of the image.
     */
    initWithData$(data: _NSData): _MTROTAHeader;
    /**
     * The identifier of the vendor whose product this image is meant for. This field can be compared to the vendor id received in the Query Image command to determine whether an image matches. This field may be 0, in which case the image might apply to products from more than one vendor. If it's nonzero, it must match the vendor id in Query Image for this image to be considered.
     */
    vendorID(): _NSNumber;
    setVendorID$(value: _NSNumber): void;
    /**
     * The identifier of the specific product the image is meant for. May be 0, if the image might apply to more than one product. This is allowed, but not required, to be matched against the product id received in Query Image.
     */
    productID(): _NSNumber;
    setProductID$(value: _NSNumber): void;
    /** The size of the actual image payload, which follows the header in the OTA file. */
    payloadSize(): _NSNumber;
    setPayloadSize$(value: _NSNumber): void;
    /**
     * The version of the software contained in this image. This is the version the OTA requestor will be updated to if this image is installed. This can be used to determine whether this image is newer than what the requestor is currently running, by comparing it to the SoftwareVersion in the Query Image command.
     */
    softwareVersion(): _NSNumber;
    setSoftwareVersion$(value: _NSNumber): void;
    /**
     * Human-readable version of softwareVersion. This must not be used for deciding which versions are newer or older; use softwareVersion for that.
     */
    softwareVersionString(): _NSString;
    setSoftwareVersionString$(value: _NSString): void;
    /**
     * If not nil a URL pointing to release notes for the software update represented by the image.
     */
    releaseNotesURL(): _NSString | null;
    setReleaseNotesURL$(value: _NSString | null): void;
    /**
     * A digest of the payload that follows the header. Can be used to verify that the payload is not truncated or corrupted.
     */
    imageDigest(): _NSData;
    setImageDigest$(value: _NSData): void;
    /** The specific algorithm that was used to compute imageDigest. */
    imageDigestType(): MTROTAImageDigestType;
    setImageDigestType$(value: MTROTAImageDigestType): void;
    /**
     * If not nil, specifies the smallest software version that this update can be applied on top of. In that case, this value must be compared to the SoftwareVersion in the QueryImage command to check whether this image is valid for the OTA requestor.
     */
    minApplicableVersion(): _NSNumber | null;
    setMinApplicableVersion$(value: _NSNumber | null): void;
    /**
     * If not nil, specifies the largest software version that this update can be applied on top of. In that case, this value must be compared to the SoftwareVersion in the QueryImage command to check whether this image is valid for the OTA requestor.
     */
    maxApplicableVersion(): _NSNumber | null;
    setMaxApplicableVersion$(value: _NSNumber | null): void;
}
