import { W3cPresentation } from "../../models/presentation/W3cPresentation.js";
import { W3cJsonLdVerifiablePresentation } from "./W3cJsonLdVerifiablePresentation.js";
import { W3cCredentialRecord } from "../../repository/W3cCredentialRecord.js";
import { DifPresentationExchangeDefinition, DifPresentationExchangeSubmission } from "../../../dif-presentation-exchange/models/index.js";
import { AgentContext } from "../../../../agent/context/AgentContext.js";

//#region src/modules/vc/data-integrity/models/IAnonCredsDataIntegrityService.d.ts
declare const ANONCREDS_DATA_INTEGRITY_CRYPTOSUITE: "anoncreds-2023";
interface AnoncredsDataIntegrityCreatePresentation {
  selectedCredentialRecords: W3cCredentialRecord[];
  presentationDefinition: DifPresentationExchangeDefinition;
  presentationSubmission: DifPresentationExchangeSubmission;
  challenge: string;
}
interface AnoncredsDataIntegrityVerifyPresentation {
  presentation: W3cJsonLdVerifiablePresentation;
  presentationDefinition: DifPresentationExchangeDefinition;
  presentationSubmission: DifPresentationExchangeSubmission;
  challenge: string;
}
declare const AnonCredsDataIntegrityServiceSymbol: unique symbol;
/**
 * We keep this standalone and don't integrity it
 * with for example the SignatureSuiteRegistry due
 * to it's unique properties, in order to not pollute,
 * the existing api's.
 */
interface IAnonCredsDataIntegrityService {
  createPresentation(agentContext: AgentContext, options: AnoncredsDataIntegrityCreatePresentation): Promise<W3cPresentation>;
  verifyPresentation(agentContext: AgentContext, options: AnoncredsDataIntegrityVerifyPresentation): Promise<boolean>;
}
//#endregion
export { ANONCREDS_DATA_INTEGRITY_CRYPTOSUITE, AnonCredsDataIntegrityServiceSymbol, AnoncredsDataIntegrityCreatePresentation, AnoncredsDataIntegrityVerifyPresentation, IAnonCredsDataIntegrityService };
//# sourceMappingURL=IAnonCredsDataIntegrityService.d.ts.map