import type { Cache } from '../../../types/cache.js';
import type { GeneralJws } from '../../../types/jws-types.js';
import type { DidResolver } from '@enbox/dids';
type VerificationResult = {
    /** DIDs of all signers */
    signers: string[];
};
/**
 * Verifies the signature(s) of a General JWS.
 */
export declare class GeneralJwsVerifier {
    private static _singleton;
    cache: Cache;
    private constructor();
    private static get singleton();
    /**
     * Verifies the signatures of the given General JWS.
     * @returns the list of signers that have valid signatures.
     */
    static verifySignatures(jws: GeneralJws, didResolver: DidResolver): Promise<VerificationResult>;
    /**
     * Verifies the signatures of the given General JWS.
     * @returns the list of signers that have valid signatures.
     */
    verifySignatures(jws: GeneralJws, didResolver: DidResolver): Promise<VerificationResult>;
    /**
     * Gets the public key given a fully qualified key ID (`kid`) by resolving the DID to its DID Document.
     *
     * Throws `GeneralJwsVerifierGetPublicKeyNotFound` when the public key cannot be located.
     * The error message distinguishes between two failure modes so callers can tell them apart:
     *   1. DID resolution failed (network error, DID not published, method not supported, etc.).
     *      The resolution metadata error code and message are included.
     *   2. DID resolved successfully but the requested `kid` does not match any verification
     *      method in the DID Document. The list of available verification method IDs is included.
     */
    private static getPublicKey;
    /**
     * Builds a diagnostic error message for `GeneralJwsVerifierGetPublicKeyNotFound`.
     * Surfaces resolution metadata or available verification methods so operators can
     * distinguish between an unreachable DID and a `kid` mismatch.
     */
    private static buildPublicKeyNotFoundMessage;
}
export {};
//# sourceMappingURL=verifier.d.ts.map