import { PublicJwk, SupportedPublicJwkClass } from "../../kms/jwk/PublicJwk.mjs";
//#region src/modules/vc/linked-data-proofs/SignatureSuiteRegistry.d.ts
declare const LinkedDataSignature: any;
/**
 * @deprecated Registration token retained for backward compatibility.
 * Will be removed in 0.8.
 */
export declare const SignatureSuiteToken: unique symbol;
export interface SuiteInfo {
  suiteClass: typeof LinkedDataSignature;
  proofType: string;
  verificationMethodTypes: string[];
  supportedPublicJwkTypes: SupportedPublicJwkClass[];
}
export declare class SignatureSuiteRegistry {
  private suiteMapping;
  constructor(suites?: SuiteInfo[]);
  /**
   * @deprecated Pass suites to the constructor instead.
   * Will be removed in 0.8.
   */
  registerSuite(suiteInfo: SuiteInfo): void;
  /**
   * @deprecated Pass suites to the constructor instead.
   * Will be removed in 0.8.
   */
  registerSuites(suites: SuiteInfo[]): void;
  get supportedProofTypes(): string[];
  /**
   * @deprecated recommended to always search by key type instead as that will have broader support
   */
  getByVerificationMethodType(verificationMethodType: string): SuiteInfo | undefined;
  getAllByPublicJwkType(publicJwkType: SupportedPublicJwkClass | PublicJwk): SuiteInfo[];
  getByProofType(proofType: string): SuiteInfo;
  /**
   * Returns the `@context` url that the signature suite for the given proof type adds to documents
   * it signs (see `LinkedDataSignature.ensureSuiteContext`), or undefined if the proof type is not
   * registered or its suite does not declare a context url.
   */
  findContextUrlByProofType(proofType: string): string | undefined;
  getVerificationMethodTypesByProofType(proofType: string): string[];
}
//#endregion
//# sourceMappingURL=SignatureSuiteRegistry.d.mts.map