import { DidRegistrar } from "../../domain/DidRegistrar.js";
import { DidCreateOptions, DidCreateResult, DidDeactivateResult, DidUpdateResult } from "../../types.js";
import { AgentContext } from "../../../../agent/context/AgentContext.js";
import { KmsCreateKeyOptions, KmsCreateKeyTypeAssymetric } from "../../../kms/options/KmsCreateKeyOptions.js";
import { XOR } from "../../../../types.js";

//#region src/modules/dids/methods/jwk/JwkDidRegistrar.d.ts
declare class JwkDidRegistrar implements DidRegistrar {
  readonly supportedMethods: string[];
  create(agentContext: AgentContext, options: JwkDidCreateOptions): Promise<DidCreateResult>;
  update(): Promise<DidUpdateResult>;
  deactivate(): Promise<DidDeactivateResult>;
}
interface JwkDidCreateOptions extends DidCreateOptions {
  method: 'jwk';
  did?: never;
  didDocument?: never;
  secret?: never;
  /**
   * You can create a did:jwk based on an existing `keyId`, or provide `createKey` options
   * to create a new key.
   */
  options: XOR<{
    createKey: KmsCreateKeyOptions<KmsCreateKeyTypeAssymetric>;
  }, {
    keyId: string;
  }>;
}
type JwkDidUpdateOptions = never;
type JwkDidDeactivateOptions = never;
//#endregion
export { JwkDidCreateOptions, JwkDidDeactivateOptions, JwkDidRegistrar, JwkDidUpdateOptions };
//# sourceMappingURL=JwkDidRegistrar.d.ts.map