from typing import Callable, List, Tuple, Dict, Any
from enum import Enum

class TutorialWrapper():
    # Public:
    # TutorialWrapper::TutorialWrapper(uintptr_t mem) [constructor]
    def __init__(self, mem: int) -> None: ...

    # TutorialWrapper::TutorialWrapper(TutorialWrapper const & other) [constructor]

    # TutorialWrapper & TutorialWrapper::operator=(TutorialWrapper rhs) [member operator]

    # TutorialWrapper::~TutorialWrapper() [destructor]
    def __del__(self) -> None: ...

    # void TutorialWrapper::Redo() [member function]
    def Redo(self) -> None: ...

    # Vector TutorialWrapper::GetCarSpawnLocation() [member function]
    def GetCarSpawnLocation(self) -> Vector: ...

    # void TutorialWrapper::SetCarSpawnLocation(Vector v) [member function]
    def SetCarSpawnLocation(self, v: Vector) -> None: ...

    # Rotator TutorialWrapper::GetCarSpawnRotation() [member function]
    def GetCarSpawnRotation(self) -> Rotator: ...

    # void TutorialWrapper::SetCarSpawnRotation(Rotator v) [member function]
    def SetCarSpawnRotation(self, v: Rotator) -> None: ...

    # CarWrapper TutorialWrapper::GetGameCar() [member function]
    def GetGameCar(self) -> CarWrapper: ...

    # bool TutorialWrapper::IsBallMovingTowardsGoal(int goalNo, BallWrapper bw) [member function]
    def IsBallMovingTowardsGoal(self, goalNo: int, bw: BallWrapper) -> bool: ...

    # bool TutorialWrapper::IsInGoal(Vector vec) [member function]
    def IsInGoal(self, vec: Vector) -> bool: ...

    # void TutorialWrapper::DisableGoalReset() [member function]
    def DisableGoalReset(self) -> None: ...

    # void TutorialWrapper::EnableGoalReset() [member function]
    def EnableGoalReset(self) -> None: ...

    # Vector TutorialWrapper::GenerateShot(Vector startPos, Vector destination, float speed) [member function]
    def GenerateShot(self, startPos: Vector, destination: Vector, speed: float) -> Vector: ...

    # Vector TutorialWrapper::GenerateGoalAimLocation(int goalNumber, Vector currentBallLocation) [member function]
    def GenerateGoalAimLocation(self, goalNumber: int, currentBallLocation: Vector) -> Vector: ...

    # Vector TutorialWrapper::GetGoalExtent(int goalNumber=0) [member function]
    def GetGoalExtent(self, goalNumber: int = 0) -> Vector: ...

    # Vector TutorialWrapper::GetGoalLocation(int goalNumber=0) [member function]
    def GetGoalLocation(self, goalNumber: int = 0) -> Vector: ...

    # Vector TutorialWrapper::GetTotalFieldExtent() [member function]
    def GetTotalFieldExtent(self) -> Vector: ...

    # void TutorialWrapper::SetTotalFieldExtent(Vector newTotalFieldExtent) [member function]
    def SetTotalFieldExtent(self, newTotalFieldExtent: Vector) -> None: ...

    # int TutorialWrapper::GetTeamNum() [member function]
    def GetTeamNum(self) -> int: ...

    # void TutorialWrapper::SetTeamNum(int newTeamNum) [member function]
    def SetTeamNum(self, newTeamNum: int) -> None: ...

    # int TutorialWrapper::GetBallGoalNum() [member function]
    def GetBallGoalNum(self) -> int: ...

    # void TutorialWrapper::SetBallGoalNum(int newBallGoalNum) [member function]
    def SetBallGoalNum(self, newBallGoalNum: int) -> None: ...

    # long unsigned int TutorialWrapper::GetbOnlyScoreInBallGoalNum() [member function]
    def GetbOnlyScoreInBallGoalNum(self) -> bool: ...

    # void TutorialWrapper::SetbOnlyScoreInBallGoalNum(long unsigned int newbOnlyScoreInBallGoalNum) [member function]
    def SetbOnlyScoreInBallGoalNum(self, newbOnlyScoreInBallGoalNum: bool) -> None: ...

    # long unsigned int TutorialWrapper::GetbRedoRound() [member function]
    def GetbRedoRound(self) -> bool: ...

    # void TutorialWrapper::SetbRedoRound(long unsigned int newbRedoRound) [member function]
    def SetbRedoRound(self, newbRedoRound: bool) -> None: ...

    # long unsigned int TutorialWrapper::GetbAllowSuperBoost() [member function]
    def GetbAllowSuperBoost(self) -> bool: ...

    # void TutorialWrapper::SetbAllowSuperBoost(long unsigned int newbAllowSuperBoost) [member function]
    def SetbAllowSuperBoost(self, newbAllowSuperBoost: bool) -> None: ...

    # long unsigned int TutorialWrapper::GetbDisplayedRedoPenaltyMessage() [member function]
    def GetbDisplayedRedoPenaltyMessage(self) -> bool: ...

    # void TutorialWrapper::SetbDisplayedRedoPenaltyMessage(long unsigned int newbDisplayedRedoPenaltyMessage) [member function]
    def SetbDisplayedRedoPenaltyMessage(self, newbDisplayedRedoPenaltyMessage: bool) -> None: ...

    # long unsigned int TutorialWrapper::GetbShowBoostMeter() [member function]
    def GetbShowBoostMeter(self) -> bool: ...

    # void TutorialWrapper::SetbShowBoostMeter(long unsigned int newbShowBoostMeter) [member function]
    def SetbShowBoostMeter(self, newbShowBoostMeter: bool) -> None: ...

    # unsigned char TutorialWrapper::GetDifficulty() [member function]
    def GetDifficulty(self) -> int: ...

    # void TutorialWrapper::SetDifficulty(unsigned char newDifficulty) [member function]
    def SetDifficulty(self, newDifficulty: int) -> None: ...

    # unsigned char TutorialWrapper::GetDebugRotationType() [member function]
    def GetDebugRotationType(self) -> int: ...

    # void TutorialWrapper::SetDebugRotationType(unsigned char newDebugRotationType) [member function]
    def SetDebugRotationType(self, newDebugRotationType: int) -> None: ...

    # float TutorialWrapper::GetGoalDepth() [member function]
    def GetGoalDepth(self) -> float: ...

    # void TutorialWrapper::SetGoalDepth(float newGoalDepth) [member function]
    def SetGoalDepth(self, newGoalDepth: float) -> None: ...

    # int TutorialWrapper::GetGameEventRounds() [member function]
    def GetGameEventRounds(self) -> int: ...

    # void TutorialWrapper::SetGameEventRounds(int newGameEventRounds) [member function]
    def SetGameEventRounds(self, newGameEventRounds: int) -> None: ...

    # float TutorialWrapper::GetEventStartTime() [member function]
    def GetEventStartTime(self) -> float: ...

    # void TutorialWrapper::SetEventStartTime(float newEventStartTime) [member function]
    def SetEventStartTime(self, newEventStartTime: float) -> None: ...

    # Vector TutorialWrapper::GetBallInitialVelocity() [member function]
    def GetBallInitialVelocity(self) -> Vector: ...

    # void TutorialWrapper::SetBallInitialVelocity(Vector newBallInitialVelocity) [member function]
    def SetBallInitialVelocity(self, newBallInitialVelocity: Vector) -> None: ...

    # int TutorialWrapper::GetSpawnIndexTypeOverride() [member function]
    def GetSpawnIndexTypeOverride(self) -> int: ...

    # void TutorialWrapper::SetSpawnIndexTypeOverride(int newSpawnIndexTypeOverride) [member function]
    def SetSpawnIndexTypeOverride(self, newSpawnIndexTypeOverride: int) -> None: ...

    # int TutorialWrapper::GetWaveIndex() [member function]
    def GetWaveIndex(self) -> int: ...

    # void TutorialWrapper::SetWaveIndex(int newWaveIndex) [member function]
    def SetWaveIndex(self, newWaveIndex: int) -> None: ...

    # int TutorialWrapper::GetWaveSpawnCount() [member function]
    def GetWaveSpawnCount(self) -> int: ...

    # void TutorialWrapper::SetWaveSpawnCount(int newWaveSpawnCount) [member function]
    def SetWaveSpawnCount(self, newWaveSpawnCount: int) -> None: ...

    # int TutorialWrapper::GetRandomSpawnIndex() [member function]
    def GetRandomSpawnIndex(self) -> int: ...

    # void TutorialWrapper::SetRandomSpawnIndex(int newRandomSpawnIndex) [member function]
    def SetRandomSpawnIndex(self, newRandomSpawnIndex: int) -> None: ...

    # UnrealStringWrapper TutorialWrapper::GetStartMessageArchetype() [member function]
    def GetStartMessageArchetype(self) -> UnrealStringWrapper: ...

    # Vector TutorialWrapper::GetBallSpawnLocation() [member function]
    def GetBallSpawnLocation(self) -> Vector: ...

    # void TutorialWrapper::SetBallSpawnLocation(Vector newBallSpawnLocation) [member function]
    def SetBallSpawnLocation(self, newBallSpawnLocation: Vector) -> None: ...

    # int TutorialWrapper::GetPointsScoredThisRound() [member function]
    def GetPointsScoredThisRound(self) -> int: ...

    # void TutorialWrapper::SetPointsScoredThisRound(int newPointsScoredThisRound) [member function]
    def SetPointsScoredThisRound(self, newPointsScoredThisRound: int) -> None: ...

    # int TutorialWrapper::GetBallSpawnCount() [member function]
    def GetBallSpawnCount(self) -> int: ...

    # void TutorialWrapper::SetBallSpawnCount(int newBallSpawnCount) [member function]
    def SetBallSpawnCount(self, newBallSpawnCount: int) -> None: ...

    # float TutorialWrapper::GetBallBounceScale() [member function]
    def GetBallBounceScale(self) -> float: ...

    # void TutorialWrapper::SetBallBounceScale(float newBallBounceScale) [member function]
    def SetBallBounceScale(self, newBallBounceScale: float) -> None: ...

    # int TutorialWrapper::GetCurrentDebugStepX() [member function]
    def GetCurrentDebugStepX(self) -> int: ...

    # void TutorialWrapper::SetCurrentDebugStepX(int newCurrentDebugStepX) [member function]
    def SetCurrentDebugStepX(self, newCurrentDebugStepX: int) -> None: ...

    # int TutorialWrapper::GetCurrentDebugStepY() [member function]
    def GetCurrentDebugStepY(self) -> int: ...

    # void TutorialWrapper::SetCurrentDebugStepY(int newCurrentDebugStepY) [member function]
    def SetCurrentDebugStepY(self, newCurrentDebugStepY: int) -> None: ...

    # int TutorialWrapper::GetCurrentDebugStepZ() [member function]
    def GetCurrentDebugStepZ(self) -> int: ...

    # void TutorialWrapper::SetCurrentDebugStepZ(int newCurrentDebugStepZ) [member function]
    def SetCurrentDebugStepZ(self, newCurrentDebugStepZ: int) -> None: ...

    # int TutorialWrapper::GetRedoCount() [member function]
    def GetRedoCount(self) -> int: ...

    # void TutorialWrapper::SetRedoCount(int newRedoCount) [member function]
    def SetRedoCount(self, newRedoCount: int) -> None: ...

    # int TutorialWrapper::GetRedoTotal() [member function]
    def GetRedoTotal(self) -> int: ...

    # void TutorialWrapper::SetRedoTotal(int newRedoTotal) [member function]
    def SetRedoTotal(self, newRedoTotal: int) -> None: ...

    # void TutorialWrapper::InitIntro() [member function]
    def InitIntro(self) -> None: ...

    # void TutorialWrapper::OnLoadingMovieClosed() [member function]
    def OnLoadingMovieClosed(self) -> None: ...

    # void TutorialWrapper::StartTimers() [member function]
    def StartTimers(self) -> None: ...

    # void TutorialWrapper::UpdateMVP() [member function]
    def UpdateMVP(self) -> None: ...

    # bool TutorialWrapper::AllowDynamicCrowd() [member function]
    def AllowDynamicCrowd(self) -> bool: ...

    # void TutorialWrapper::SetTutorialTip(std::string NewTip) [member function]
    def SetTutorialTip(self, NewTip: str) -> None: ...

    # void TutorialWrapper::SetShowBoostMeter(long unsigned int bShow) [member function]
    def SetShowBoostMeter(self, bShow: bool) -> None: ...

    # float TutorialWrapper::GetStepLoc(int Steps, float TotalDist, long unsigned int bIncrement, int * Out_CurrentStep) [member function]
    def GetStepLoc(self, Steps: int, TotalDist: float, bIncrement: bool, Out_CurrentStep: int) -> float: ...

    # Vector TutorialWrapper::GetDebugLocationInExtent(Vector & Extent) [member function]
    def GetDebugLocationInExtent(self, Extent: Vector) -> Vector: ...

    # void TutorialWrapper::InitDebugSetup(CarWrapper Car) [member function]
    def InitDebugSetup(self, Car: CarWrapper) -> None: ...

    # void TutorialWrapper::SkipTutorial() [member function]
    def SkipTutorial(self) -> None: ...

    # void TutorialWrapper::UpdateBotCount() [member function]
    def UpdateBotCount(self) -> None: ...

    # void TutorialWrapper::InitMutators() [member function]
    def InitMutators(self) -> None: ...

    # bool TutorialWrapper::IsPrimaryPlayer(CarWrapper Car) [member function]
    def IsPrimaryPlayer(self, Car: CarWrapper) -> bool: ...

    # bool TutorialWrapper::CanAwardPoints() [member function]
    def CanAwardPoints(self) -> bool: ...

    # void TutorialWrapper::ShowResetRoundMessage() [member function]
    def ShowResetRoundMessage(self) -> None: ...

    # void TutorialWrapper::Destroyed() [member function]
    def Destroyed(self) -> None: ...

    # bool TutorialWrapper::EndTutorial() [member function]
    def EndTutorial(self) -> bool: ...

    # void TutorialWrapper::CommitRedoRound() [member function]
    def CommitRedoRound(self) -> None: ...

    # void TutorialWrapper::RedoRound2() [member function]
    def RedoRound2(self) -> None: ...

    # bool TutorialWrapper::CanRedoRound() [member function]
    def CanRedoRound(self) -> bool: ...

    # void TutorialWrapper::StartNewRound() [member function]
    def StartNewRound(self) -> None: ...

    # void TutorialWrapper::SaveLocalPlayerStats() [member function]
    def SaveLocalPlayerStats(self) -> None: ...

    # TeamWrapper TutorialWrapper::GetWinningTeam() [member function]
    def GetWinningTeam(self) -> TeamWrapper: ...

    # void TutorialWrapper::CleanupRoundActors() [member function]
    def CleanupRoundActors(self) -> None: ...

    # bool TutorialWrapper::CanQueSaveReplay() [member function]
    def CanQueSaveReplay(self) -> bool: ...

    # void TutorialWrapper::ResetBalls() [member function]
    def ResetBalls(self) -> None: ...

    # int TutorialWrapper::GetScore() [member function]
    def GetScore(self) -> int: ...

    # void TutorialWrapper::StartRound() [member function]
    def StartRound(self) -> None: ...

    # int TutorialWrapper::GetGameEventRounds2() [member function]
    def GetGameEventRounds2(self) -> int: ...

    # int TutorialWrapper::GetTotalRounds() [member function]
    def GetTotalRounds(self) -> int: ...

    # void TutorialWrapper::ResetRoundTime() [member function]
    def ResetRoundTime(self) -> None: ...

    # void TutorialWrapper::OnPlayerRestarted(CarWrapper PlayerCar) [member function]
    def OnPlayerRestarted(self, PlayerCar: CarWrapper) -> None: ...

    # unsigned char TutorialWrapper::GetTrainingType() [member function]
    def GetTrainingType(self) -> int: ...

    # void TutorialWrapper::EndGame() [member function]
    def EndGame(self) -> None: ...

    # Vector TutorialWrapper::GetRandomLocationInExtent(Vector & Extent) [member function]
    def GetRandomLocationInExtent(self, Extent: Vector) -> Vector: ...

    # bool TutorialWrapper::Chance(int Chances) [member function]
    def Chance(self, Chances: int) -> bool: ...

    # int TutorialWrapper::GetOppositeTeamNum() [member function]
    def GetOppositeTeamNum(self) -> int: ...

    # Vector TutorialWrapper::GetDirectionToGoal(int GoalNum) [member function]
    def GetDirectionToGoal(self, GoalNum: int) -> Vector: ...

    # bool TutorialWrapper::IsGameEventComplete() [member function]
    def IsGameEventComplete(self) -> bool: ...

    # Vector TutorialWrapper::ClampPointToExtent(Vector & ExtentCenter, Vector & Point, Vector & Extent) [member function]
    def ClampPointToExtent(self, ExtentCenter: Vector, Point: Vector, Extent: Vector) -> Vector: ...

    # Vector TutorialWrapper::PredictInitialVelocity(Vector & StartLoc, Vector & EndLoc, float Z) [member function]
    def PredictInitialVelocity(self, StartLoc: Vector, EndLoc: Vector, Z: float) -> Vector: ...

    # BallWrapper TutorialWrapper::GetGameBall() [member function]
    def GetGameBall(self) -> BallWrapper: ...

    # CarWrapper TutorialWrapper::GetGamePawn() [member function]
    def GetGamePawn(self) -> CarWrapper: ...

    # void TutorialWrapper::ResetGameEvent() [member function]
    def ResetGameEvent(self) -> None: ...

    # void TutorialWrapper::CheckForReset() [member function]
    def CheckForReset(self) -> None: ...

    # float TutorialWrapper::GetGoalViewWidth(GoalWrapper Goal, Vector & ViewerLoc) [member function]
    def GetGoalViewWidth(self, Goal: GoalWrapper, ViewerLoc: Vector) -> float: ...

    # bool TutorialWrapper::IsBallMovingTowardsGoal2(GoalWrapper Goal, BallWrapper Ball, float MinVelocityForDestroy, float InGoalDepth) [member function]
    def IsBallMovingTowardsGoal2(self, Goal: GoalWrapper, Ball: BallWrapper, MinVelocityForDestroy: float, InGoalDepth: float) -> bool: ...

    # void TutorialWrapper::SetGoalDepth2() [member function]
    def SetGoalDepth2(self) -> None: ...

    # int TutorialWrapper::GetShuffledSpawnIndex() [member function]
    def GetShuffledSpawnIndex(self) -> int: ...

    # void TutorialWrapper::DestroyCannon() [member function]
    def DestroyCannon(self) -> None: ...

    # void TutorialWrapper::SetCannonOrientation(Vector & NewLocation, Rotator & NewRotation) [member function]
    def SetCannonOrientation(self, NewLocation: Vector, NewRotation: Rotator) -> None: ...

    # BallWrapper TutorialWrapper::SpawnBall(Vector & SpawnLoc, long unsigned int bWake, long unsigned int bSpawnCannon, std::string BallArch) [member function]
    def SpawnBall(self, SpawnLoc: Vector, bWake: bool, bSpawnCannon: bool, BallArch: str) -> BallWrapper: ...

    # void TutorialWrapper::InitBallEffects() [member function]
    def InitBallEffects(self) -> None: ...

    # void TutorialWrapper::InitBallVelocity() [member function]
    def InitBallVelocity(self) -> None: ...

    # Vector TutorialWrapper::GetRandomGoalAimLocation(int InTeamNum, Vector & BallLoc) [member function]
    def GetRandomGoalAimLocation(self, InTeamNum: int, BallLoc: Vector) -> Vector: ...

    # Vector TutorialWrapper::GetGoalExtent2(GoalWrapper Goal) [member function]
    def GetGoalExtent2(self, Goal: GoalWrapper) -> Vector: ...

    # void TutorialWrapper::SetBallVelocity(Vector & InitialVelocity, BallWrapper Ball) [member function]
    def SetBallVelocity(self, InitialVelocity: Vector, Ball: BallWrapper) -> None: ...

    # void TutorialWrapper::InitGameSetup(CarWrapper Car) [member function]
    def InitGameSetup(self, Car: CarWrapper) -> None: ...

    # bool TutorialWrapper::ShouldAllowSuperBoost() [member function]
    def ShouldAllowSuperBoost(self) -> bool: ...

    # void TutorialWrapper::OnVehicleSetup(CarWrapper Car) [member function]
    def OnVehicleSetup(self, Car: CarWrapper) -> None: ...

    # void TutorialWrapper::HandleVehicleSetup(CarWrapper Car) [member function]
    def HandleVehicleSetup(self, Car: CarWrapper) -> None: ...

    # void TutorialWrapper::InitCrowdManager() [member function]
    def InitCrowdManager(self) -> None: ...

    # void TutorialWrapper::HandleScoreUpdated(TeamWrapper Team) [member function]
    def HandleScoreUpdated(self, Team: TeamWrapper) -> None: ...

    # void TutorialWrapper::SetDifficulty2(int InDifficulty) [member function]
    def SetDifficulty2(self, InDifficulty: int) -> None: ...

    # void TutorialWrapper::UpdateStats() [member function]
    def UpdateStats(self) -> None: ...

    # void TutorialWrapper::AddLocalPlayer(PlayerControllerWrapper Player) [member function]
    def AddLocalPlayer(self, Player: PlayerControllerWrapper) -> None: ...

    # void TutorialWrapper::HandlePlayerResetTraining(GameEventWrapper GameEvent) [member function]
    def HandlePlayerResetTraining(self, GameEvent: GameEventWrapper) -> None: ...

    # void TutorialWrapper::OnInit() [member function]
    def OnInit(self) -> None: ...

    # void TutorialWrapper::EventTutorialTipChanged(TutorialWrapper GameEvent, std::string NewTip) [member function]
    def EventTutorialTipChanged(self, GameEvent: TutorialWrapper, NewTip: str) -> None: ...

    # Private:
    # TutorialWrapper::Impl [class declaration]

    # TutorialWrapper::pimpl [variable]
    @property
    def pimpl(self) -> Any: ...


