#ifndef VSSCRIPT4_H
#define VSSCRIPT4_H
#include "VapourSynth4.h"
#define VSSCRIPT_API_MAJOR 4
#if defined(VSSCRIPT_USE_LATEST_API) || defined(VSSCRIPT_USE_API_43)
#define VSSCRIPT_API_MINOR 3
#elif defined(VSSCRIPT_USE_API_42)
#define VSSCRIPT_API_MINOR 2
#else
#define VSSCRIPT_API_MINOR 1
#endif
#define VSSCRIPT_API_VERSION VS_MAKE_VERSION(VSSCRIPT_API_MAJOR, VSSCRIPT_API_MINOR)
typedef struct VSScript VSScript;
typedef struct VSSCRIPTAPI VSSCRIPTAPI;
struct VSSCRIPTAPI {
int (VS_CC *getAPIVersion)(void) VS_NOEXCEPT;
const VSAPI *(VS_CC *getVSAPI)(int version) VS_NOEXCEPT;
VSScript *(VS_CC *createScript)(VSCore *core) VS_NOEXCEPT;
VSCore *(VS_CC *getCore)(VSScript *handle) VS_NOEXCEPT;
int (VS_CC *evaluateBuffer)(VSScript *handle, const char *buffer, const char *scriptFilename) VS_NOEXCEPT;
int (VS_CC *evaluateFile)(VSScript *handle, const char *scriptFilename) VS_NOEXCEPT;
const char *(VS_CC *getError)(VSScript *handle) VS_NOEXCEPT;
int (VS_CC *getExitCode)(VSScript *handle) VS_NOEXCEPT;
int (VS_CC *getVariable)(VSScript *handle, const char *name, VSMap *dst) VS_NOEXCEPT;
int (VS_CC *setVariables)(VSScript *handle, const VSMap *vars) VS_NOEXCEPT;
VSNode *(VS_CC *getOutputNode)(VSScript *handle, int index) VS_NOEXCEPT;
VSNode *(VS_CC *getOutputAlphaNode)(VSScript *handle, int index) VS_NOEXCEPT;
int (VS_CC *getAltOutputMode)(VSScript *handle, int index) VS_NOEXCEPT;
void (VS_CC *freeScript)(VSScript *handle) VS_NOEXCEPT;
void (VS_CC *evalSetWorkingDir)(VSScript *handle, int setCWD) VS_NOEXCEPT;
#if VSSCRIPT_API_MINOR >= 2
int (VS_CC *getAvailableOutputNodes)(VSScript *handle, int size, int *dst) VS_NOEXCEPT;
#endif
};
VS_API(const VSSCRIPTAPI *) getVSScriptAPI(int version) VS_NOEXCEPT;
#if VSSCRIPT_API_MINOR >= 3
VS_API(const char *) getVSScriptAPILastError() VS_NOEXCEPT;
#endif
#endif