import type { Config } from '../config/schema.js'; import { getTunnelService } from '../tunnel/tunnel-service.js'; import { getTailscaleExposureState } from '../gateway/tailscale-lifecycle.js'; import type { GatewayTailscaleMode } from '../gateway/server-tailscale.js'; import { collectExposureConflicts } from './exposure-guards.js'; export type ExposureStatus = { bindMode: string; tailscale: ReturnType & { cliAvailable: boolean; }; tunnel: ReturnType['getStatus']> & { consentRequired: boolean; canAutoStart: boolean; }; conflicts: ReturnType; }; export declare class ExposureManager { getStatus(config: Config): Promise; autoStart(config: Config, port: number, gatewayToken: string): Promise; startTailscale(config: Config, port: number, mode: GatewayTailscaleMode): Promise; stopTailscale(): Promise; } export declare function getExposureManager(): ExposureManager;