import { Query, QueryOptions } from "../../storage/StorageService.mjs";
import { MdocRecord } from "./repository/MdocRecord.mjs";
import { MdocRepository } from "./repository/MdocRepository.mjs";
import "./repository/index.mjs";
import { MdocDeviceResponseDcqlQueryOptions, MdocDeviceResponseOptions, MdocDeviceResponsePresentationDefinitionOptions, MdocDeviceResponseVerifyOptions, MdocSignOptions, MdocStoreOptions, MdocVerifyOptions } from "./MdocOptions.mjs";
import { MdocDeviceResponse } from "./MdocDeviceResponse.mjs";
import { Mdoc } from "./Mdoc.mjs";
import { AgentContext } from "../../agent/context/AgentContext.mjs";
import "../../agent/index.mjs";

//#region src/modules/mdoc/MdocService.d.ts
/**
 * @internal
 */
declare class MdocService {
  private mdocRepository;
  constructor(mdocRepository: MdocRepository);
  mdocFromBase64Url(hexEncodedMdoc: string): Mdoc;
  signMdoc(agentContext: AgentContext, options: MdocSignOptions): Promise<Mdoc>;
  verifyMdoc(agentContext: AgentContext, mdoc: Mdoc, options: MdocVerifyOptions): Promise<{
    isValid: true;
  } | {
    isValid: false;
    error: string;
  }>;
  createDeviceResponse(agentContext: AgentContext, options: MdocDeviceResponseOptions): Promise<MdocDeviceResponse>;
  createPresentationDefinitionDeviceResponse(agentContext: AgentContext, options: MdocDeviceResponsePresentationDefinitionOptions): Promise<MdocDeviceResponse>;
  createDcqlQueryDeviceResponse(agentContext: AgentContext, options: MdocDeviceResponseDcqlQueryOptions): Promise<MdocDeviceResponse>;
  verifyDeviceResponse(agentContext: AgentContext, options: MdocDeviceResponseVerifyOptions): Promise<void>;
  store(agentContext: AgentContext, options: MdocStoreOptions): Promise<MdocRecord>;
  getById(agentContext: AgentContext, id: string): Promise<MdocRecord>;
  getAll(agentContext: AgentContext): Promise<Array<MdocRecord>>;
  findByQuery(agentContext: AgentContext, query: Query<MdocRecord>, queryOptions?: QueryOptions): Promise<Array<MdocRecord>>;
  deleteById(agentContext: AgentContext, id: string): Promise<void>;
  update(agentContext: AgentContext, mdocRecord: MdocRecord): Promise<void>;
}
//#endregion
export { MdocService };
//# sourceMappingURL=MdocService.d.mts.map