"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
 * Creates cwrapped interface for importer api.
 *
 * https://github.com/sass/libsass/blob/master/docs/api-importer.md
 */
//TODO: verify return type / param type of cwrapped signature for Sass_Import_Entry
const wrapSassImporter = (cwrap) => ({
    //Sass_Importer_Entry sass_make_importer (Sass_Importer_Fn importer, double priority, void* cookie);
    make_importer: cwrap(`sass_make_importer`, 'number', ['number', 'number', 'number']),
    //Sass_C_Import_Fn sass_importer_get_function (Sass_C_Import_Callback fn);
    importer_get_function: cwrap(`sass_importer_get_function`, 'number', [
        'number'
    ]),
    //void* sass_importer_get_cookie (Sass_C_Import_Callback fn);
    importer_get_cookie: cwrap(`sass_importer_get_cookie`, 'number', ['number']),
    //void sass_delete_importer (Sass_C_Import_Callback fn);
    delete_importer: cwrap(`sass_delete_importer`, null, ['number']),
    //Sass_Import_Entry* sass_make_import_list (size_t length);
    make_import_list: cwrap(`sass_make_import_list`, 'number', ['number']),
    //Sass_Import_Entry sass_make_import_entry (const char* path, char* source, char* srcmap);
    make_import_entry: cwrap(`sass_make_import_entry`, 'number', ['number', 'number', 'number']),
    //Sass_Import_Entry sass_make_import (const char* rel, const char* abs, char* source, char* srcmap);
    make_import: cwrap(`sass_make_import`, 'number', ['number', 'number', 'number', 'number']),
    //Sass_Import_Entry sass_import_set_error(Sass_Import_Entry import, const char* message, size_t line, size_t col);
    import_set_error: cwrap(`sass_import_set_error`, 'number', ['number', 'number', 'number', 'number']),
    //void sass_import_set_list_entry (Sass_Import_Entry* list, size_t idx, Sass_Import_Entry entry);
    import_set_list_entry: cwrap(`sass_import_set_list_entry`, null, ['number', 'number', 'number']),
    //Sass_Import_Entry sass_import_get_list_entry (Sass_Import_Entry* list, size_t idx);
    import_get_list_entry: cwrap(`sass_import_get_list_entry`, 'number', ['number', 'number']),
    //const char* sass_import_get_imp_path (Sass_Import_Entry);
    import_get_imp_path: cwrap(`sass_import_get_imp_path`, 'number', ['number']),
    //const char* sass_import_get_abs_path (Sass_Import_Entry);
    import_get_abs_path: cwrap(`sass_import_get_abs_path`, 'number', ['number']),
    //const char* sass_import_get_source (Sass_Import_Entry);
    import_get_source: cwrap(`sass_import_get_source`, 'number', ['number']),
    //const char* sass_import_get_srcmap (Sass_Import_Entry);
    import_get_srcmap: cwrap(`sass_import_get_srcmap`, 'number', ['number']),
    //char* sass_import_take_source (Sass_Import_Entry);
    import_take_source: cwrap(`sass_import_take_source`, 'number', ['number']),
    //char* sass_import_take_srcmap (Sass_Import_Entry);
    import_take_srcmap: cwrap(`sass_import_take_srcmap`, 'number', ['number']),
    //size_t sass_import_get_error_line (Sass_Import_Entry);
    import_get_error_line: cwrap(`sass_import_get_error_line`, 'number', ['number']),
    //size_t sass_import_get_error_column (Sass_Import_Entry);
    import_get_error_column: cwrap(`sass_import_get_error_column`, 'number', [
        'number'
    ]),
    //const char* sass_import_get_error_message (Sass_Import_Entry);
    import_get_error_message: cwrap(`sass_import_get_error_message`, 'number', [
        'number'
    ]),
    //void sass_delete_import_list (Sass_Import_Entry*);
    delete_import_list: cwrap(`sass_delete_import_list`, null, ['number']),
    //void sass_delete_import (Sass_Import_Entry);
    delete_import: cwrap(`sass_delete_import`, null, ['number'])
});
exports.wrapSassImporter = wrapSassImporter;
//# sourceMappingURL=wrapSassImporter.js.map