import type { AcceptProofOptions, AcceptProofProposalOptions, AcceptProofRequestOptions, CreateProofRequestOptions, DeleteProofOptions, FindProofPresentationMessageReturn, FindProofProposalMessageReturn, FindProofRequestMessageReturn, GetCredentialsForProofRequestOptions, GetCredentialsForProofRequestReturn, GetProofFormatDataReturn, NegotiateProofProposalOptions, NegotiateProofRequestOptions, ProposeProofOptions, RequestProofOptions, SelectCredentialsForProofRequestOptions, SelectCredentialsForProofRequestReturn, SendProofProblemReportOptions, DeclineProofRequestOptions } from './ProofsApiOptions'; import type { ProofProtocol } from './protocol/ProofProtocol'; import type { ProofFormatsFromProtocols } from './protocol/ProofProtocolOptions'; import type { ProofExchangeRecord } from './repository/ProofExchangeRecord'; import type { AgentMessage } from '../../agent/AgentMessage'; import type { Query } from '../../storage/StorageService'; import { MessageSender } from '../../agent/MessageSender'; import { AgentContext } from '../../agent/context/AgentContext'; import { ConnectionService } from '../connections/services/ConnectionService'; import { ProofsModuleConfig } from './ProofsModuleConfig'; import { ProofRepository } from './repository/ProofRepository'; export interface ProofsApi { proposeProof(options: ProposeProofOptions): Promise; acceptProposal(options: AcceptProofProposalOptions): Promise; negotiateProposal(options: NegotiateProofProposalOptions): Promise; requestProof(options: RequestProofOptions): Promise; acceptRequest(options: AcceptProofRequestOptions): Promise; declineRequest(options: DeclineProofRequestOptions): Promise; negotiateRequest(options: NegotiateProofRequestOptions): Promise; acceptPresentation(options: AcceptProofOptions): Promise; createRequest(options: CreateProofRequestOptions): Promise<{ message: AgentMessage; proofRecord: ProofExchangeRecord; }>; selectCredentialsForRequest(options: SelectCredentialsForProofRequestOptions): Promise>; getCredentialsForRequest(options: GetCredentialsForProofRequestOptions): Promise>; sendProblemReport(options: SendProofProblemReportOptions): Promise; getAll(): Promise; findAllByQuery(query: Query): Promise; getById(proofRecordId: string): Promise; findById(proofRecordId: string): Promise; deleteById(proofId: string, options?: DeleteProofOptions): Promise; update(proofRecord: ProofExchangeRecord): Promise; getFormatData(proofRecordId: string): Promise>>; findProposalMessage(proofRecordId: string): Promise>; findRequestMessage(proofRecordId: string): Promise>; findPresentationMessage(proofRecordId: string): Promise>; } export declare class ProofsApi implements ProofsApi { /** * Configuration for the proofs module */ readonly config: ProofsModuleConfig; private connectionService; private messageSender; private proofRepository; private agentContext; constructor(messageSender: MessageSender, connectionService: ConnectionService, agentContext: AgentContext, proofRepository: ProofRepository, config: ProofsModuleConfig); private getProtocol; /** * Retrieve a proof record by connection id and thread id * * @param connectionId The connection id * @param threadId The thread id * @throws {RecordNotFoundError} If no record is found * @throws {RecordDuplicateError} If multiple records are found * @returns The proof record */ getByThreadAndConnectionId(threadId: string, connectionId?: string): Promise; /** * Retrieve proof records by connection id and parent thread id * * @param connectionId The connection id * @param parentThreadId The parent thread id * @returns List containing all proof records matching the given query */ getByParentThreadAndConnectionId(parentThreadId: string, connectionId?: string): Promise; }