import type { IPortProxySettings, IDomainConfig } from './classes.pp.interfaces.js';
import { DomainConfigManager } from './classes.pp.domainconfigmanager.js';
/**
 * PortProxy - Main class that coordinates all components
 */
export declare class PortProxy {
    private netServers;
    private connectionLogger;
    private isShuttingDown;
    private connectionManager;
    private securityManager;
    domainConfigManager: DomainConfigManager;
    private tlsManager;
    private networkProxyBridge;
    private timeoutManager;
    private portRangeManager;
    private connectionHandler;
    private port80Handler;
    constructor(settingsArg: IPortProxySettings);
    /**
     * The settings for the port proxy
     */
    settings: IPortProxySettings;
    /**
     * Initialize the Port80Handler for ACME certificate management
     */
    private initializePort80Handler;
    /**
     * Start the proxy server
     */
    start(): Promise<void>;
    /**
     * Stop the proxy server
     */
    stop(): Promise<void>;
    /**
     * Updates the domain configurations for the proxy
     */
    updateDomainConfigs(newDomainConfigs: IDomainConfig[]): Promise<void>;
    /**
     * Updates the Port80Handler configuration
     */
    updatePort80HandlerConfig(config: IPortProxySettings['port80HandlerConfig']): Promise<void>;
    /**
     * Request a certificate for a specific domain
     */
    requestCertificate(domain: string): Promise<boolean>;
    /**
     * Validates if a domain name is valid for certificate issuance
     */
    private isValidDomain;
    /**
     * Get statistics about current connections
     */
    getStatistics(): any;
    /**
     * Get a list of eligible domains for ACME certificates
     */
    getEligibleDomainsForCertificates(): string[];
    /**
     * Get status of certificates managed by Port80Handler
     */
    getCertificateStatus(): any;
}
