// AUTOMATICALLY GENERATED, DO NOT EDIT
using System;
using System.Runtime.InteropServices;

namespace Pkmnlib.Generated
{
    internal static class BattleLibrary
    {
        /// <param name="out">BattleLibrary * &</param>
        /// <param name="staticLib">PokemonLibrary *</param>
        /// <param name="statCalculator">StatCalculator *</param>
        /// <param name="damageLibrary">DamageLibrary *</param>
        /// <param name="experienceLibrary">ExperienceLibrary *</param>
        /// <param name="scriptResolver">ScriptResolver *</param>
        /// <param name="miscLibrary">MiscLibrary *</param>
        /// <returns>unsigned char</returns>
        [DllImport("libpkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_BattleLibrary_Construct")]
        internal static extern byte Construct(ref IntPtr @out, IntPtr staticLib, IntPtr statCalculator, IntPtr damageLibrary, IntPtr experienceLibrary, IntPtr scriptResolver, IntPtr miscLibrary);

        /// <param name="p">BattleLibrary *</param>
        /// <returns>void</returns>
        [DllImport("libpkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_BattleLibrary_Destruct")]
        internal static extern void Destruct(IntPtr p);

    }
}
