import type { DocumentLoader, JwsLinkedDataSignatureOptions, Proof } from '@credo-ts/core'; import type { JsonLdDoc } from '@credo-ts/core/build/modules/vc/data-integrity/jsonldUtil'; import { JwsLinkedDataSignature } from '@credo-ts/core'; export declare const SECURITY_CONTEXT_SECP256k1_RECOVERY_URL = "https://w3id.org/security/suites/secp256k1recovery-2020/v2"; type EcdsaSecp256k1RecoverySignature2020Options = Pick; /** * A secp256k1 signature suite for use with k251 key pairs */ export declare class EcdsaSecp256k1RecoverySignature2020 extends JwsLinkedDataSignature { static CONTEXT_URL: string; /** * @param {object} options - Options hashmap. * * Either a `key` OR at least one of `signer`/`verifier` is required. * * @param {object} [options.key] - An optional key object (containing an * `id` property, and either `signer` or `verifier`, depending on the * intended operation. Useful for when the application is managing keys * itself (when using a KMS, you never have access to the private key, * and so should use the `signer` param instead). * @param {Function} [options.signer] - Signer function that returns an * object with an async sign() method. This is useful when interfacing * with a KMS (since you don't get access to the private key and its * `signer()`, the KMS client gives you only the signer function to use). * @param {Function} [options.verifier] - Verifier function that returns * an object with an async `verify()` method. Useful when working with a * KMS-provided verifier function. * * Advanced optional parameters and overrides. * * @param {object} [options.proof] - A JSON-LD document with options to use * for the `proof` node. Any other custom fields can be provided here * using a context different from security-v2). * @param {string|Date} [options.date] - Signing date to use if not passed. * @param {boolean} [options.useNativeCanonize] - Whether to use a native * canonize algorithm. */ constructor(options: EcdsaSecp256k1RecoverySignature2020Options); assertVerificationMethod(document: JsonLdDoc): Promise; getVerificationMethod(options: { proof: Proof; documentLoader?: DocumentLoader; }): Promise; /** * Ensures the document to be signed contains the required signature suite * specific `@context`, by either adding it (if `addSuiteContext` is true), * or throwing an error if it's missing. * * @override * * @param {object} options - Options hashmap. * @param {object} options.document - JSON-LD document to be signed. * @param {boolean} options.addSuiteContext - Add suite context? */ ensureSuiteContext(options: { document: JsonLdDoc; addSuiteContext: boolean; }): void; } export {};