export interface TunnelStatus {
    active: boolean;
    url?: string;
    cloudflaredAvailable?: boolean;
}
/**
 * Start a cloudflared tunnel if `tunnelEnabled` is true in agent settings.
 *
 * Must be called BEFORE `new LocalProxy()` so that callback URL env vars
 * (e.g., TRELLO_CALLBACK_URL) are available during drawlatch's
 * `resolveSecrets()` in the constructor.
 *
 * @param port — The local port callboard is listening on.
 * @param host — The local host (default "127.0.0.1").
 * @returns The tunnel URL if started, or null if skipped/failed.
 */
export declare function startTunnelIfEnabled(port: number | string, host?: string): Promise<string | null>;
/**
 * Stop the active cloudflared tunnel (if any).
 * Safe to call multiple times / when no tunnel is active.
 */
export declare function stopTunnel(): Promise<void>;
/**
 * Get current tunnel status.
 */
export declare function getTunnelStatus(): TunnelStatus;
/**
 * Get current tunnel status including cloudflared availability check.
 * The availability check spawns a process, so this is async.
 */
export declare function getTunnelStatusFull(): Promise<TunnelStatus>;
//# sourceMappingURL=tunnel-manager.d.ts.map