import type { BinaryWriteOptions } from '@protobuf-ts/runtime';
import type { IBinaryWriter } from '@protobuf-ts/runtime';
import type { BinaryReadOptions } from '@protobuf-ts/runtime';
import type { IBinaryReader } from '@protobuf-ts/runtime';
import type { PartialMessage } from '@protobuf-ts/runtime';
import { MessageType } from '@protobuf-ts/runtime';
/**
 * @generated from protobuf message com.daml.ledger.api.v2.SigningPublicKey
 */
export interface SigningPublicKey {
    /**
     * The serialization format of the public key
     *
     * @generated from protobuf field: com.daml.ledger.api.v2.CryptoKeyFormat format = 1
     */
    format: CryptoKeyFormat;
    /**
     * Serialized public key in the format specified above
     *
     * @generated from protobuf field: bytes key_data = 2
     */
    keyData: Uint8Array;
    /**
     * The key specification
     *
     * @generated from protobuf field: com.daml.ledger.api.v2.SigningKeySpec key_spec = 3
     */
    keySpec: SigningKeySpec;
}
/**
 * @generated from protobuf enum com.daml.ledger.api.v2.SigningKeySpec
 */
export declare enum SigningKeySpec {
    /**
     * @generated from protobuf enum value: SIGNING_KEY_SPEC_UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * Elliptic Curve Key from Curve25519
     * as defined in http://ed25519.cr.yp.to/
     *
     * @generated from protobuf enum value: SIGNING_KEY_SPEC_EC_CURVE25519 = 1;
     */
    EC_CURVE25519 = 1,
    /**
     * Elliptic Curve Key from the NIST P-256 curve (aka secp256r1)
     * as defined in https://doi.org/10.6028/NIST.FIPS.186-4
     *
     * @generated from protobuf enum value: SIGNING_KEY_SPEC_EC_P256 = 2;
     */
    EC_P256 = 2,
    /**
     * Elliptic Curve Key from the NIST P-384 curve (aka secp384r1)
     * as defined in https://doi.org/10.6028/NIST.FIPS.186-4
     *
     * @generated from protobuf enum value: SIGNING_KEY_SPEC_EC_P384 = 3;
     */
    EC_P384 = 3,
    /**
     * Elliptic Curve Key from SECG P256k1 curve (aka secp256k1)
     * commonly used in bitcoin and ethereum
     * as defined in https://www.secg.org/sec2-v2.pdf
     *
     * @generated from protobuf enum value: SIGNING_KEY_SPEC_EC_SECP256K1 = 4;
     */
    EC_SECP256K1 = 4
}
/**
 * Serialization format for crypto keys and signatures
 *
 * @generated from protobuf enum com.daml.ledger.api.v2.CryptoKeyFormat
 */
export declare enum CryptoKeyFormat {
    /**
     * @generated from protobuf enum value: CRYPTO_KEY_FORMAT_UNSPECIFIED = 0;
     */
    UNSPECIFIED = 0,
    /**
     * ASN.1 + DER encoding
     * Legacy format no longer used, except for migrations
     *
     * @generated from protobuf enum value: CRYPTO_KEY_FORMAT_DER = 1;
     */
    DER = 1,
    /**
     * Raw encoding of a key
     *
     * @generated from protobuf enum value: CRYPTO_KEY_FORMAT_RAW = 2;
     */
    RAW = 2,
    /**
     * ASN.1 + DER-encoding of X.509 SubjectPublicKeyInfo structure: https://datatracker.ietf.org/doc/html/rfc5280#section-4.1
     *
     * @generated from protobuf enum value: CRYPTO_KEY_FORMAT_DER_X509_SUBJECT_PUBLIC_KEY_INFO = 3;
     */
    DER_X509_SUBJECT_PUBLIC_KEY_INFO = 3
}
declare class SigningPublicKey$Type extends MessageType<SigningPublicKey> {
    constructor();
    create(value?: PartialMessage<SigningPublicKey>): SigningPublicKey;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SigningPublicKey): SigningPublicKey;
    internalBinaryWrite(message: SigningPublicKey, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message com.daml.ledger.api.v2.SigningPublicKey
 */
export declare const SigningPublicKey: SigningPublicKey$Type;
export {};
//# sourceMappingURL=crypto.d.ts.map