import type { NobjcObject } from "objc-js";
import type { _TKTokenKeychainItem } from "./TKTokenKeychainItem.js";
import type { _NSData } from "../Foundation/NSData.js";
import type { _NSString } from "../Foundation/NSString.js";
export declare class _TKTokenKeychainKey extends _TKTokenKeychainItem {
    static alloc(): _TKTokenKeychainKey;
    static new(): _TKTokenKeychainKey;
    init(): _TKTokenKeychainKey;
    /**
     * @discussion Initialize TKTokenKeychainKey with informations from SecCertificateRef associated with the key. Use SecCertificateCreateWithData to obtain SecCertificateRef. If NULL is passed instead of certificate, all properties of created instance must be initialized manually.
     */
    initWithCertificate$objectID$(certificateRef: NobjcObject | null, objectID: NobjcObject): _TKTokenKeychainKey | null;
    /**
     * @discussion Type of the key, currently kSecAttrKeyTypeRSA and kSecAttrKeyTypeECSECPrimeRandom is supported). The property is an equivalent to kSecAttrKeyType in SecItem.h
     */
    keyType(): _NSString;
    setKeyType$(value: _NSString): void;
    /**
     * @discussion Represents private tag data. The property is an equivalent to kSecAttrApplicationTag in SecItem.h
     */
    applicationTag(): _NSData | null;
    setApplicationTag$(value: _NSData | null): void;
    /**
     * @discussion Indicates the number of bits in this key. The property is an equivalent to kSecAttrKeySizeInBits in SecItem.h
     */
    keySizeInBits(): number;
    setKeySizeInBits$(value: number): void;
    /** @discussion Contains raw public key data for this private key. */
    publicKeyData(): _NSData | null;
    setPublicKeyData$(value: _NSData | null): void;
    /**
     * @discussion SHA1 hash of the raw public key. The property is an equivalent to kSecAttrApplicationLabel in SecItem.h
     */
    publicKeyHash(): _NSData | null;
    setPublicKeyHash$(value: _NSData | null): void;
    /**
     * @discussion Indicates whether this key can be used to decrypt data. The property is an equivalent to kSecAttrCanDecrypt in SecItem.h
     */
    canDecrypt(): boolean;
    setCanDecrypt$(value: boolean): void;
    /**
     * @discussion Indicates whether this key can be used to create a digital signature. The property is an equivalent to kSecAttrCanSign in SecItem.h
     */
    canSign(): boolean;
    setCanSign$(value: boolean): void;
    /**
     * @discussion Indicates whether this key can be used to perform Diffie-Hellman style cryptographic key exchange.
     */
    canPerformKeyExchange(): boolean;
    setCanPerformKeyExchange$(value: boolean): void;
    /** @discussion Indicates whether this key can be used for login in to the system. */
    suitableForLogin(): boolean;
    setSuitableForLogin$(value: boolean): void;
}
