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

//#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<Uint8Array<ArrayBufferLike>>;
  createPresentationDefinitionDeviceResponse(agentContext: AgentContext, options: MdocDeviceResponsePresentationDefinitionOptions): Promise<{
    deviceResponseBase64Url: string;
    presentationSubmission: {
      id: string;
      definition_id: string;
      descriptor_map: {
        id: string;
        format: string;
        path: string;
      }[];
    };
  }>;
  verifyDeviceResponse(agentContext: AgentContext, options: MdocDeviceResponseVerifyOptions): Promise<Mdoc[]>;
  store(agentContext: AgentContext, mdoc: Mdoc): 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.ts.map