Many electronic speed controls provide the same hardware interface to manage them. It's +5 V, GND, PWM wires.
But I have noticed an interesting feature, which is provided by BLHeli based ESC. You can program it with BLHeli suite software. For example, Arduino Nano is programmed to be bootloader, then it will use GND, PWM wires in order to program ESC. I suppose that some kind of UART protocol is used. The most obscure thing for me is possible implementation from ESC's side. How does ESC understand that "PWM" pin should be treated as UART signal? I guess that we can detect some "preamble" signal at the start of ESC, if it's not matched then pin is assumed to receive PWM signal. But it's only my guess-work.