/**
 * Shared types for certificate management and domain options
 */
/**
 * Domain forwarding configuration
 */
export interface IForwardConfig {
    ip: string;
    port: number;
}
/**
 * Domain configuration options
 */
export interface IDomainOptions {
    domainName: string;
    sslRedirect: boolean;
    acmeMaintenance: boolean;
    forward?: IForwardConfig;
    acmeForward?: IForwardConfig;
}
/**
 * Certificate data that can be emitted via events or set from outside
 */
export interface ICertificateData {
    domain: string;
    certificate: string;
    privateKey: string;
    expiryDate: Date;
}
/**
 * @deprecated Events emitted by the Port80Handler - use SmartCertManager instead
 */
export declare enum Port80HandlerEvents {
    CERTIFICATE_ISSUED = "certificate-issued",
    CERTIFICATE_RENEWED = "certificate-renewed",
    CERTIFICATE_FAILED = "certificate-failed",
    CERTIFICATE_EXPIRING = "certificate-expiring",
    MANAGER_STARTED = "manager-started",
    MANAGER_STOPPED = "manager-stopped",
    REQUEST_FORWARDED = "request-forwarded"
}
/**
 * Certificate failure payload type
 */
export interface ICertificateFailure {
    domain: string;
    error: string;
    isRenewal: boolean;
}
/**
 * Certificate expiry payload type
 */
export interface ICertificateExpiring {
    domain: string;
    expiryDate: Date;
    daysRemaining: number;
}
/**
 * Forwarding configuration for specific domains in ACME setup
 */
export interface IDomainForwardConfig {
    domain: string;
    forwardConfig?: IForwardConfig;
    acmeForwardConfig?: IForwardConfig;
    sslRedirect?: boolean;
}
/**
 * Unified ACME configuration options used across proxies and handlers
 */
export interface IAcmeOptions {
    accountEmail?: string;
    enabled?: boolean;
    port?: number;
    useProduction?: boolean;
    httpsRedirectPort?: number;
    renewThresholdDays?: number;
    renewCheckIntervalHours?: number;
    autoRenew?: boolean;
    skipConfiguredCerts?: boolean;
    domainForwards?: IDomainForwardConfig[];
}
