/** * ACME Protocol interfaces per RFC 8555 */ export interface IAcmeDirectory { newNonce: string; newAccount: string; newOrder: string; newAuthz?: string; revokeCert?: string; keyChange?: string; meta?: IAcmeDirectoryMeta; } export interface IAcmeDirectoryMeta { termsOfService?: string; website?: string; caaIdentities?: string[]; externalAccountRequired?: boolean; } export interface IAcmeIdentifier { type: 'dns'; value: string; } export interface IAcmeAccount { status: string; contact?: string[]; termsOfServiceAgreed?: boolean; orders?: string; } export interface IAcmeAccountCreateRequest { termsOfServiceAgreed: boolean; contact?: string[]; } export interface IAcmeOrder { url: string; status: string; expires?: string; identifiers: IAcmeIdentifier[]; authorizations: string[]; finalize: string; certificate?: string; } export interface IAcmeAuthorization { identifier: IAcmeIdentifier; status: string; expires?: string; challenges: IAcmeChallenge[]; wildcard?: boolean; } export interface IAcmeChallenge { type: string; url: string; status: string; token: string; validated?: string; } export interface IAcmeCsrOptions { commonName: string; altNames?: string[]; } export interface IAcmeHttpResponse { status: number; headers: Record; data: any; }