import * as plugins from '../plugins.js';
import { NetworkProxy } from '../networkproxy/classes.np.networkproxy.js';
import { Port80Handler } from '../port80handler/classes.port80handler.js';
import type { IConnectionRecord, IPortProxySettings } from './classes.pp.interfaces.js';
/**
 * Manages NetworkProxy integration for TLS termination
 */
export declare class NetworkProxyBridge {
    private settings;
    private networkProxy;
    private port80Handler;
    constructor(settings: IPortProxySettings);
    /**
     * Set the Port80Handler to use for certificate management
     */
    setPort80Handler(handler: Port80Handler): void;
    /**
     * Initialize NetworkProxy instance
     */
    initialize(): Promise<void>;
    /**
     * Handle certificate issuance or renewal events
     */
    private handleCertificateEvent;
    /**
     * Get the NetworkProxy instance
     */
    getNetworkProxy(): NetworkProxy | null;
    /**
     * Get the NetworkProxy port
     */
    getNetworkProxyPort(): number;
    /**
     * Start NetworkProxy
     */
    start(): Promise<void>;
    /**
     * Stop NetworkProxy
     */
    stop(): Promise<void>;
    /**
     * Register domains with Port80Handler
     */
    registerDomainsWithPort80Handler(domains: string[]): void;
    /**
     * Forwards a TLS connection to a NetworkProxy for handling
     */
    forwardToNetworkProxy(connectionId: string, socket: plugins.net.Socket, record: IConnectionRecord, initialData: Buffer, customProxyPort?: number, onError?: (reason: string) => void): void;
    /**
     * Synchronizes domain configurations to NetworkProxy
     */
    syncDomainConfigsToNetworkProxy(): Promise<void>;
    /**
     * Request a certificate for a specific domain
     */
    requestCertificate(domain: string): Promise<boolean>;
}
