import type { NobjcObject } from "objc-js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSDictionary } from "../Foundation/NSDictionary.js";
import type { _NSError } from "../Foundation/NSError.js";
import type { _NSObject } from "../Foundation/NSObject.js";
import type { _LAPublicKey } from "./LAPublicKey.js";
export declare class _LAPrivateKey extends _NSObject {
    static alloc(): _LAPrivateKey;
    static new(): _LAPrivateKey;
    init(): _LAPrivateKey;
    /**
     * Generates a digital signature for the given data. The data to be signed, typically the digest of the actual data. A suitable for generating signatures with this key – e.g: Completion handler with the signature of given data or an error on failure.
     */
    signData$secKeyAlgorithm$completion$(data: _NSData, algorithm: NobjcObject, handler: ((arg0: _NSData, arg1: _NSError) => void) | null): void;
    /**
     * Checks if the the provided algorithm can be used for signing data Cryptographic algorithm in case the key supports the provided algorithm with the specified operation.
     */
    canSignUsingSecKeyAlgorithm$(algorithm: NobjcObject): boolean;
    /**
     * Decrypts the given ciphertext The data to decrypt. The length and format of the data must conform to chosen algorithm, typically be less or equal to the value returned by SecKeyGetBlockSize(). A suitable for decrypting data with this key –e.g: Completion handler with plaintext or an error on failure.
     */
    decryptData$secKeyAlgorithm$completion$(data: _NSData, algorithm: NobjcObject, handler: ((arg0: _NSData, arg1: _NSError) => void) | null): void;
    /**
     * Checks if the the provided algorithm can be used for decryption Cryptographic algorithm in case the key supports the provided algorithm with the specified operation.
     */
    canDecryptUsingSecKeyAlgorithm$(algorithm: NobjcObject): boolean;
    /**
     * Performs a Diffie-Hellman style key exchange operation Remote party's public key. A suitable for performing a key exchange with this key –e.g: Dictionary with parameters, see constants. Used algorithm determines the set of required and optional parameters to be used. Completion handler with the result of the key exchange or an error on failure.
     */
    exchangeKeysWithPublicKey$secKeyAlgorithm$secKeyParameters$completion$(publicKey: _NSData, algorithm: NobjcObject, parameters: _NSDictionary, handler: ((arg0: _NSData, arg1: _NSError) => void) | null): void;
    /**
     * Checks if the the provided algorithm can be used for performing key exchanges Cryptographic algorithm in case the key supports the provided algorithm with the specified operation.
     */
    canExchangeKeysUsingSecKeyAlgorithm$(algorithm: NobjcObject): boolean;
    /** Offers the public key counterpart of a instance */
    publicKey(): _LAPublicKey;
}
