#pragma once

#include <stddef.h>

#include "freertos/FreeRTOS.h"
#include "esp_err.h"

esp_err_t uart_mux_init(void);
bool uart_mux_ready(void);
size_t uart_mux_channel_count(void);
esp_err_t uart_mux_write(size_t channel, const uint8_t *data, size_t length, TickType_t timeout);
esp_err_t uart_mux_read(size_t channel, uint8_t *buffer, size_t buffer_size, size_t *out_length, TickType_t timeout);
