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/key/KeyDidRegistrar.d.ts
declare class KeyDidRegistrar implements DidRegistrar {
  readonly supportedMethods: string[];
  create(agentContext: AgentContext, options: KeyDidCreateOptions): Promise<DidCreateResult>;
  update(): Promise<DidUpdateResult>;
  deactivate(): Promise<DidDeactivateResult>;
}
interface KeyDidCreateOptions extends DidCreateOptions {
  method: 'key';
  did?: never;
  didDocument?: never;
  secret?: never;
  /**
   * You can create a did:key based on an existing `keyId`, or provide `createKey` options
   * to create a new key.
   */
  options: XOR<{
    createKey: KmsCreateKeyOptions<KmsCreateKeyTypeAssymetric>;
  }, {
    keyId: string;
  }>;
}
type KeyDidUpdateOptions = never;
type KeyDidDeactivateOptions = never;
//#endregion
export { KeyDidCreateOptions, KeyDidDeactivateOptions, KeyDidRegistrar, KeyDidUpdateOptions };
//# sourceMappingURL=KeyDidRegistrar.d.ts.map