using System.Runtime.InteropServices;

namespace QSPR3xttParse;

[Guid("D6F88E95-8A27-4ae6-B6DE-0542A0FC2222")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface _QSPR3XTT
{
	[DispId(1)]
	bool LoadRFCalXTT(string path);

	[DispId(2)]
	int GetNumOfTests();

	[DispId(3)]
	string GetTestName(int testIndex);

	[DispId(4)]
	string GetRealName(int testIndex);

	[DispId(5)]
	int GetNumOfTestParameter(int testIndex);

	[DispId(6)]
	string GetTestParameterName(int testIndex, int ParameterIndex);

	[DispId(7)]
	string GetTestParameterValue(int testIndex, int ParameterIndex);

	[DispId(8)]
	void CreateINI(string INIpath);

	[DispId(9)]
	bool LoadQSPRTreeFile(string path);

	[DispId(10)]
	void GetTestInfo(int testIndex, out string testname, out string realname, out int numParams);

	[DispId(11)]
	void GetTestParameterInfo(int testIndex, int parameterIndex, out string parameterName, out string parameterValue, out string unit, out string upperlimit, out string lowerlimit, out string dataType, out string paramMode);

	[DispId(12)]
	void GeneratePublicPrivateRSAKeys(string seed, out string publicKey, out string privateKey);

	[DispId(13)]
	void DigSignQSPRTreeFile(string inFile, string outFile, string privateKey);

	[DispId(14)]
	bool LoadSignedQSPRTreeFile(string path, string publicKey);
}
