import { EdgeNodeRepository } from '../identity/drizzle/EdgeNodeRepository'; import type { Dns01CertificateProvisioner } from '../edge/Dns01CertificateProvisioner'; export interface EdgeNodeCertificateServiceOptions { identityDbUrl?: string; repository?: EdgeNodeRepository; provisioner: Dns01CertificateProvisioner; accountKeyPath: string; certificateStorePath: string; directoryUrl?: string; email: string; propagationDelayMs?: number; } export interface EdgeNodeCertificateRequest { nodeId: string; csr: string; subdomain: string; } export interface EdgeNodeCertificateResponse { certificate: string; fullChain: string; expiresAt: string; domains: string[]; } export declare class EdgeNodeCertificateService { private readonly logger; private readonly repository; private readonly provisioner; private readonly accountKeyPath; private readonly certificateStorePath; private readonly directoryUrl; private readonly email; private readonly propagationDelayMs; private readonly pending; constructor(options: EdgeNodeCertificateServiceOptions); issueCertificate(request: EdgeNodeCertificateRequest): Promise; private issueCertificateInternal; private extractDomains; private validateDomains; private createClient; private ensureAccount; private loadOrCreateAccountKey; private persistCertificate; private readExpiration; private delay; }