import { Query, QueryOptions } from "../../storage/StorageService.js";
import { ClaimFormat } from "./models/ClaimFormat.js";
import { W3cVerifiableCredential } from "./models/credential/W3cVerifiableCredential.js";
import { W3cPresentation } from "./models/presentation/W3cPresentation.js";
import { W3cCreatePresentationOptions, W3cSignCredentialOptions, W3cSignPresentationOptions, W3cStoreCredentialOptions, W3cVerifyCredentialOptions, W3cVerifyPresentationOptions } from "./W3cCredentialServiceOptions.js";
import { W3cVerifiablePresentation } from "./models/presentation/W3cVerifiablePresentation.js";
import { W3cVerifyCredentialResult, W3cVerifyPresentationResult } from "./models/W3cVerifyResult.js";
import { W3cCredentialRecord } from "./repository/W3cCredentialRecord.js";
import { W3cCredentialService } from "./W3cCredentialService.js";
import { AgentContext } from "../../agent/context/AgentContext.js";

//#region src/modules/vc/W3cCredentialsApi.d.ts
/**
 * @public
 */
declare class W3cCredentialsApi {
  private agentContext;
  private w3cCredentialService;
  constructor(agentContext: AgentContext, w3cCredentialService: W3cCredentialService);
  storeCredential(options: W3cStoreCredentialOptions): Promise<W3cCredentialRecord>;
  removeCredentialRecord(id: string): Promise<void>;
  getAllCredentialRecords(): Promise<W3cCredentialRecord[]>;
  getCredentialRecordById(id: string): Promise<W3cCredentialRecord>;
  findCredentialRecordsByQuery(query: Query<W3cCredentialRecord>, queryOptions?: QueryOptions): Promise<W3cVerifiableCredential[]>;
  signCredential<Format extends ClaimFormat.JwtVc | ClaimFormat.LdpVc>(options: W3cSignCredentialOptions<Format>): Promise<W3cVerifiableCredential<Format>>;
  verifyCredential(options: W3cVerifyCredentialOptions): Promise<W3cVerifyCredentialResult>;
  createPresentation(options: W3cCreatePresentationOptions): Promise<W3cPresentation>;
  signPresentation<Format extends ClaimFormat.JwtVp | ClaimFormat.LdpVp>(options: W3cSignPresentationOptions<Format>): Promise<W3cVerifiablePresentation<Format>>;
  verifyPresentation(options: W3cVerifyPresentationOptions): Promise<W3cVerifyPresentationResult>;
}
//#endregion
export { W3cCredentialsApi };
//# sourceMappingURL=W3cCredentialsApi.d.ts.map