#ifndef _FS_H_
#define _FS_H_

#include <sys/stat.h>
#include <sys/dirent.h>
#include <sys/types.h>
#include <unistd.h>

#include "boot/typedef.hpp"
#include "drivers/fs/handlers.hpp"

#include "esp_err.h"

typedef enum {
    MOUNT_LITTLEFS,
    MOUNT_SD_CARD,
    MOUNT_SPIFFS,
    MOUNT_HANDLER
} fs_type_t;

int init_fs();

void list_files(const char *path);
bool file_exists(const char *path);
uint32_t mount(fs_type_t type, const char *path, const char *label, const Handler_vfs *class_fs = NULL);
int unmount();
int format();
int get_info();
int is_present();
int get_vfs_config();

#endif