import type { _NSData } from "../Foundation/NSData.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _MTROperationalCredentialsClusterCSRResponseParams } from "./MTROperationalCredentialsClusterCSRResponseParams.js";
export declare class _MTROperationalCSRInfo extends _NSObject {
    static alloc(): _MTROperationalCSRInfo;
    static new(): _MTROperationalCSRInfo;
    init(): _MTROperationalCSRInfo;
    /**
     * Initialize an MTROperationalCSRInfo by providing all the fields. It's the caller's responsibility to ensure that csr and csrNonce match the csrElementsTLV.
     */
    initWithCSR$csrNonce$csrElementsTLV$attestationSignature$(csr: _NSData, csrNonce: _NSData, csrElementsTLV: _NSData, attestationSignature: _NSData): _MTROperationalCSRInfo;
    /**
     * Initialize an MTROperationalCSRInfo by providing the csrNonce (for example, the nonce the client initially supplied), and the csrElementsTLV and attestationSignature that the server returned. This will ensure that csrNonce matches the data in csrElementsTLV, returning nil if it does not, and extract the csr from csrElementsTLV.
     */
    initWithCSRNonce$csrElementsTLV$attestationSignature$(csrNonce: _NSData, csrElementsTLV: _NSData, attestationSignature: _NSData): _MTROperationalCSRInfo | null;
    /**
     * Initialize an MTROperationalCSRInfo by providing just the csrElementsTLV and attestationSignature (which can come from an MTROperationalCredentialsClusterCSRResponseParams). This will extract the csr and csrNonce from the csrElementsTLV, if possible, and return nil if that fails.
     */
    initWithCSRElementsTLV$attestationSignature$(csrElementsTLV: _NSData, attestationSignature: _NSData): _MTROperationalCSRInfo | null;
    /**
     * Initialize an MTROperationalCSRInfo by providing an MTROperationalCredentialsClusterCSRResponseParams. This will extract the relevant fields from the response data.
     */
    initWithCSRResponseParams$(responseParams: _MTROperationalCredentialsClusterCSRResponseParams): _MTROperationalCSRInfo | null;
    /** DER-encoded certificate signing request. */
    csr(): _NSData;
    /** The nonce associated with this CSR. */
    csrNonce(): _NSData;
    /**
     * TLV-encoded nocsr-elements structure. This includes the "csr" and "csrNonce" fields, and can include additional vendor-specific information.
     */
    csrElementsTLV(): _NSData;
    /**
     * A signature, using the device attestation private key of the device that created the CSR, over the concatenation of csrElementsTLV and the attestation challenge from the secure session. The attestation challenge is available in MTRAttestionInfo.
     */
    attestationSignature(): _NSData;
}
