/* eslint-disable @stylistic/indent */ import type { VerifyOptions, VerifyMessageResult as openpgp_VerifyMessageResult, CleartextMessage, Signature as OpenPGPSignature } from '../openpgp'; import type { VERIFICATION_STATUS } from '../constants'; import type { ContextVerificationOptions } from './context'; import type { Data, MaybeWebStream } from '../pmcrypto'; // Streaming not supported when verifying detached signatures export interface VerifyOptionsPmcrypto extends Omit { textData?: T extends string ? T : never; binaryData?: T extends Uint8Array ? T : never; stripTrailingSpaces?: T extends string ? boolean : never; signatureContext?: ContextVerificationOptions; } export interface VerifyMessageResult { data: DataType; verificationStatus: VERIFICATION_STATUS; signatures: OpenPGPSignature[]; signatureTimestamp: Date | null; errors?: Error[]; } export function verifyMessage( options: VerifyOptionsPmcrypto & { format?: FormatType } ): Promise< FormatType extends 'utf8' ? VerifyMessageResult : FormatType extends 'binary' ? VerifyMessageResult> : never >; export function handleVerificationResult>( verificationResult: openpgp_VerifyMessageResult, signatureContext?: ContextVerificationOptions, expectSigned?: boolean ): Promise>; export interface VerifyCleartextOptionsPmcrypto extends Omit { cleartextMessage: CleartextMessage } // Cleartext message data is always of utf8 format export function verifyCleartextMessage( options: VerifyCleartextOptionsPmcrypto ): Promise>;