import { RemoteIngressManager, type IRemoteIngressFirewallConfig } from './classes.remoteingress-manager.js';
import type { IDcRouterRouteConfig, IRemoteIngressHubSettings, TRemoteIngressHubSettingsUpdate } from '../../dist_ts_interfaces/data/remoteingress.js';
import type { DcRouter } from '../classes.dcrouter.js';
/**
 * Generation-guarded lifecycle for the RemoteIngress tunnel hub: serialized
 * start/stop/restart of the Rust hub, edge mutations, route/firewall pushes,
 * and hub-settings updates that may require a SmartProxy restart.
 */
export declare class RemoteIngressHubLifecycle {
    private dcRouterRef;
    private lifecycleChain;
    private stopping;
    private generation;
    constructor(dcRouterRef: DcRouter);
    setup(): Promise<void>;
    stop(): Promise<void>;
    mutateEdges<T>(mutation: (manager: RemoteIngressManager) => Promise<T>, syncAllowedEdges?: boolean): Promise<T>;
    updateRoutes(routes: IDcRouterRouteConfig[]): Promise<void>;
    applyFirewallConfig(firewallConfig: IRemoteIngressFirewallConfig | undefined): Promise<void>;
    updateHubSettings(updates: TRemoteIngressHubSettingsUpdate, updatedBy: string): Promise<IRemoteIngressHubSettings>;
    private isGenerationCurrent;
    private queueTask;
    private stopTunnelHubLocked;
    private restartTunnelHubLocked;
    private startTunnelHubLocked;
    private resolveTlsConfig;
}
