import type { IAcmeDirectory, IAcmeHttpResponse } from './acme.interfaces.js'; export type TAcmeLogger = (level: string, message: string, data?: any) => void; /** * JWS-signed HTTP transport for ACME protocol. * Handles nonce management, bad-nonce retries, and signed requests. */ export declare class AcmeHttpClient { private directoryUrl; private accountKeyPem; private directory; private nonce; kid: string | null; private logger?; private httpsAgent; private httpAgent; constructor(directoryUrl: string, accountKeyPem: string, logger?: TAcmeLogger); /** * Destroy HTTP agents to release sockets and allow process exit. */ destroy(): void; private log; /** * GET the ACME directory (cached after first call) */ getDirectory(): Promise; /** * Fetch a fresh nonce via HEAD to newNonce */ getNonce(): Promise; /** * Send a JWS-signed POST request to an ACME endpoint. * Handles nonce rotation and bad-nonce retries (up to 5). * payload=null means POST-as-GET. */ signedRequest(url: string, payload: any | null, options?: { useJwk?: boolean; }): Promise; /** * Raw HTTP request using native node:https */ private httpRequest; }