/* tslint:disable */

export interface CUQuery {
  connectedServices: ConnectedServices | null;
  invite: Invite | null;
  invites: Array<Invite> | null;
  myCharacter: CUCharacter | null;
  character: CUCharacter | null;
  motd: Array<MessageOfTheDay> | null;
  patchNotes: Array<PatchNote> | null;
  patchNote: PatchNote | null;
  patcherAlerts: Array<PatcherAlert> | null;
  patcherHero: Array<PatcherHero> | null;
  scenariosummary: ScenarioSummaryDBModel | null;
  substances: Array<SubstanceDefRef> | null;
  gearSlots: Array<GearSlotDefRef> | null;
  item: Item | null;
  traits: Array<Trait> | null;
  metrics: MetricsData | null;
  status: Status | null;
  myprogression: CharacterProgressionData | null;
  shardprogression: ShardProgressionData | null;
  entityItems: EntityItemResult | null;
  myInventory: MyInventory | null;
  myEquippedItems: MyEquippedItems | null;
  resourceNode: ResourceNodeResult | null;
  secureTrade: SecureTradeStatus | null;
  test: Test | null;
  world: WorldData | null;
  crafting: CraftingRecipes | null;
  channels: Array<Channel> | null;
}

export interface InviteCUQueryArgs {
  shard: number | null;
  code: string | null;
}

export interface InvitesCUQueryArgs {
  shard: number | null;
  forGroup: string | null;
  toGroup: string | null;
  toCharacter: string | null;
  includeInactive: boolean | null;
}

export interface CharacterCUQueryArgs {
  id: string | null;
  shard: number | null;
}

export interface MotdCUQueryArgs {
  channel: number | null;
}

export interface PatchNotesCUQueryArgs {
  from: Date | null;
  to: Date | null;
  channel: number | null;
}

export interface PatchNoteCUQueryArgs {
  id: string | null;
}

export interface PatcherAlertsCUQueryArgs {
  from: Date | null;
  to: Date | null;
}

export interface PatcherHeroCUQueryArgs {
  from: Date | null;
  to: Date | null;
}

export interface ScenariosummaryCUQueryArgs {
  id: string | null;
}

export interface ItemCUQueryArgs {
  shard: number | null;
  id: string | null;
}

export interface EntityItemsCUQueryArgs {
  id: string | null;
}

export interface ResourceNodeCUQueryArgs {
  shard: number | null;
  id: string | null;
}

export interface ConnectedServices {
  asyncRPC: Array<AsyncRPCConnectionStatus> | null;
  worldState: Array<WorldStateStatus> | null;
  servers: Array<ServerModel> | null;
}

export interface AsyncRPCConnectionStatus {
  clientType: string | null;
  status: string | null;
  address: string | null;
}

export interface WorldStateStatus {
  shard: ShardID | null;
  address: string | null;
  lastState: Date | null;
  entityCount: number | null;
  worldReceiver: string | null;
  physicsReceiver: string | null;
  proxyStatus: Array<ProxyStatus> | null;
}

export type ShardID = any;

export type Date = any;

export interface ProxyStatus {
  iP: string | null;
  cPU: number | null;
  publicIP: string | null;
  privateIP: string | null;
  currentState: string | null;
  goalState: string | null;
  stateClass: string | null;
}

export interface ServerModel {
  accessLevel: AccessType | null;
  channelID: number | null;
  channelPatchPermissions: number | null;
  host: string | null;
  name: string | null;
  playerMaximum: number | null;
  shardID: number | null;
  status: ServerStatus | null;
  apiHost: string | null;
}

export type AccessType = "Public" | "Beta3" | "Beta2" | "Beta1" | "Alpha" | "InternalTest" | "Employees" | "Invalid";

export type ServerStatus = "Offline" | "Starting" | "Online";

export interface Invite {
  code: InviteCode | null;
  shard: ShardID | null;
  status: InviteStatus | null;
  targetsID128: ID128 | null;
  forGroup: GroupID | null;
  forGroupType: GroupTypes | null;
  created: Date | null;
  durationTicks: number | null;
  uses: number | null;
  maxUses: number | null;
}

export type InviteCode = any;

export type InviteStatus = "Active" | "Revoked" | "UsageLimitReached" | "Expired";

export type ID128 = any;

export type GroupID = any;

export type GroupTypes = "Warband" | "Battlegroup" | "Order" | "Campaign";

export interface CUCharacter {
  name: string | null;
  progression: ProgressionComponentGQLField | null;
  id: CharacterID | null;
  faction: Faction | null;
  race: Race | null;
  gender: Gender | null;
  archetype: Archetype | null;
  order: GroupID | null;
  traits: Array<Trait> | null;
  stats: Array<CharacterStatField> | null;
  maxHealth: number | null;
  maxBlood: number | null;
  maxStamina: number | null;
  maxPanic: number | null;
  session: SessionStatsField | null;
}

export interface ProgressionComponentGQLField {
  characterStats: Array<CharacterStatProgressionGQLField> | null;
  skillParts: Array<SkillPartProgressionGQLField> | null;
}

export interface CharacterStatProgressionGQLField {
  stat: PlayerStat | null;
  bonusPoints: number | null;
  progressionPoints: number | null;
}

export type PlayerStat = "Strength" | "Dexterity" | "Agility" | "Vitality" | "Endurance" | "Attunement" | "Will" | "Faith" | "Resonance" | "Eyesight" | "Hearing" | "Presence" | "Clarity" | "Affinity" | "Mass" | "MaxMoveSpeed" | "MoveAcceleration" | "MaxTurnSpeed" | "Vision" | "Detection" | "Encumbrance" | "EncumbranceReduction" | "CarryCapacity" | "MaxPanic" | "PanicDecay" | "MaxHP" | "HealthRegeneration" | "MaxStamina" | "StaminaRegeneration" | "AbilityPreparationSpeed" | "AbilityRecoverySpeed" | "CooldownSpeed" | "Age" | "Concealment" | "VeilSubtlety" | "VeilResist" | "HealingReceivedBonus" | "EnhancementDuration" | "HeatTolerance" | "ColdTolerance" | "MaxBlood" | "BloodRegeneration" | "EffectPowerBonus" | "None";

export interface SkillPartProgressionGQLField {
  skillPartID: string | null;
  level: number | null;
  progressionPoints: number | null;
}

export type CharacterID = any;

export type Faction = "Factionless" | "TDD" | "Viking" | "Arthurian" | "COUNT";

export type Race = "Tuatha" | "Hamadryad" | "Luchorpan" | "Firbog" | "Valkyrie" | "Helbound" | "FrostGiant" | "Dvergr" | "Strm" | "CaitSith" | "Golem" | "Gargoyle" | "StormRider" | "StormRiderT" | "StormRiderV" | "HumanMaleV" | "HumanMaleA" | "HumanMaleT" | "Pict" | "Any";

export type Gender = "None" | "Male" | "Female";

export type Archetype = "FireMage" | "EarthMage" | "WaterMage" | "Fighter" | "Healer" | "Archer" | "MeleeCombatTest" | "ArcherTest" | "BlackKnight" | "Fianna" | "Mjolnir" | "Physician" | "Empath" | "Stonehealer" | "Blackguard" | "ForestStalker" | "WintersShadow" | "Any";

export interface Trait {
  requires: boolean | null;
  category: TraitCategory | null;
  id: string | null;
  name: string | null;
  icon: string | null;
  description: string | null;
  points: number | null;
  specifer: string | null;
}

export type TraitCategory = "General" | "Faction" | "Race" | "Class";

export interface CharacterStatField {
  stat: PlayerStat | null;
  value: number | null;
}

export interface SessionStatsField {
  sessionStartTicks: number | null;
  sessionStartDate: Date | null;
  skillPartsUsed: Array<SkillPartsUsedField> | null;
}

export interface SkillPartsUsedField {
  skillPart: SkillPartDef | null;
  timesUsed: number | null;
}

export interface SkillPartDef {
  icon: string | null;
  id: string | null;
  name: string | null;
}

export interface MessageOfTheDay {
  title: string | null;
  htmlContent: string | null;
  channels: Array<number> | null;
  id: string | null;
  utcDisplayStart: Date | null;
  utcDisplayEnd: Date | null;
  utcCreated: Date | null;
}

export interface PatchNote {
  channels: Array<ChannelID> | null;
  htmlContent: string | null;
  title: string | null;
  patchNumber: string | null;
  id: string | null;
  utcDisplayStart: Date | null;
  utcDisplayEnd: Date | null;
  utcCreated: Date | null;
}

export type ChannelID = "None";

export interface PatcherAlert {
  message: string | null;
  id: string | null;
  utcDisplayStart: Date | null;
  utcDisplayEnd: Date | null;
  utcCreated: Date | null;
}

export interface PatcherHero {
  id: string | null;
  utcDisplayStart: Date | null;
  utcDisplayEnd: Date | null;
  utcCreated: Date | null;
}

export interface ScenarioSummaryDBModel {
  scenarioInstanceID: ScenarioInstanceID | null;
  shardID: ShardID | null;
  startTime: Date | null;
  endTime: Date | null;
  creatorAdminID: CharacterID | null;
  rounds: Array<RoundOutcome> | null;
  resolution: ScenarioResolution | null;
  teamOutcomes: Array<TeamOutcomeScenarioField> | null;
  scenarioDef: ScenarioDef | null;
}

export type ScenarioInstanceID = any;

export interface RoundOutcome {
  roundInstanceID: RoundInstanceID | null;
  roundIndex: number | null;
  startTime: Date | null;
  endTime: Date | null;
  resolution: ScenarioResolution | null;
  adminID: CharacterID | null;
  teamOutcomes: Array<TeamOutcomeRound> | null;
  myRoundOutcome: CharacterOutcomeDBModel | null;
}

export type RoundInstanceID = any;

export type ScenarioResolution = "Started" | "Finished" | "Restarted" | "Killed";

export interface TeamOutcomeRound {
  teamID: ScenarioTeamID | null;
  score: number | null;
  role: RoleID | null;
  outcome: ScenarioOutcome | null;
  participants: Array<CharacterOutcomeDBModel> | null;
  damageSummary: DamageSummaryDBModel | null;
  participantCount: number | null;
}

export type ScenarioTeamID = any;

export type RoleID = any;

export type ScenarioOutcome = "Invalid" | "Win" | "Lose" | "Draw" | "Killed" | "Restart";

export interface CharacterOutcomeDBModel {
  displayName: string | null;
  damage: DamageSummaryDBModel | null;
  score: number | null;
  crafting: CraftingSummaryDBModel | null;
}

export interface DamageSummaryDBModel {
  healingApplied: CountPerTargetTypeDBModel | null;
  healingReceived: CountPerTargetTypeDBModel | null;
  damageApplied: CountPerTargetTypeDBModel | null;
  damageReceived: CountPerTargetTypeDBModel | null;
  killCount: CountPerTargetTypeDBModel | null;
  deathCount: CountPerTargetTypeDBModel | null;
  killAssistCount: CountPerTargetTypeDBModel | null;
  createCount: CountPerTargetTypeDBModel | null;
}

export interface CountPerTargetTypeDBModel {
  self: number | null;
  playerCharacter: number | null;
  nonPlayerCharacter: number | null;
  dummy: number | null;
  anyCharacter: number | null;
  resourceNode: number | null;
  item: number | null;
  building: number | null;
}

export interface CraftingSummaryDBModel {
  blockSummary: JobSummaryDBModel | null;
  grindSummary: JobSummaryDBModel | null;
  makeSummary: JobSummaryDBModel | null;
  purifySummary: JobSummaryDBModel | null;
  refineSummary: JobSummaryDBModel | null;
  repairSummary: JobSummaryDBModel | null;
  salvageSummary: JobSummaryDBModel | null;
  shapeSummary: JobSummaryDBModel | null;
}

export interface JobSummaryDBModel {
  started: number | null;
  canceled: number | null;
  collected: number | null;
}

export interface TeamOutcomeScenarioField {
  participants: Array<CharacterOutcomeDBModel> | null;
  teamID: ScenarioTeamID | null;
  outcome: ScenarioOutcome | null;
}

export interface ScenarioDef {
  displayDescription: string | null;
  displayName: string | null;
  icon: string | null;
  id: string | null;
}

export interface SubstanceDefRef {
  id: string | null;
  minQuality: number | null;
  maxQuality: number | null;
}

export interface GearSlotDefRef {
  id: string | null;
  gearLayer: GearLayerDefRef | null;
  subpartIDs: Array<SubpartId> | null;
}

export interface GearLayerDefRef {
  id: string | null;
  armorStatCalculationType: ArmorStatCalculationType | null;
  gearLayerType: GearLayerType | null;
}

export type ArmorStatCalculationType = "None" | "Average" | "Add";

export type GearLayerType = "Unknown" | "Weapon" | "Armor";

export type SubpartId = "None" | "_BODY_PART_COUNT" | "Any" | "_BUILDING_VAL" | "_BODY_VAL" | "_BODY_BEGIN" | "Head" | "LeftArm" | "RightArm" | "LeftLeg" | "RightLeg" | "_BODY_END" | "_SINGULAR_VAL" | "_TYPE_MASK";

export interface Item {
  givenName: string | null;
  id: ItemInstanceID | null;
  scenarioRelationship: ScenarioRelationship | null;
  shardID: ShardID | null;
  stackHash: ItemStackHash | null;
  staticDefinition: ItemDefRef | null;
  stats: ItemStatsDescription | null;
  debugname: string | null;
  containerColor: ColorRGBA | null;
  voxItems: Array<Item> | null;
  location: ItemLocationDescription | null;
  equiprequirement: ItemEquipRequirement | null;
  containerDrawers: Array<ContainerDrawerGQL> | null;
  permissibleHolder: FlagsPermissibleHolderGQL | null;
}

export type ItemInstanceID = any;

export interface ScenarioRelationship {
  restrictedToScenario: boolean | null;
  scenarioID: ScenarioInstanceID | null;
}

export type ItemStackHash = any;

export interface ItemDefRef {
  id: string | null;
  defaultResourceID: string | null;
  iconUrl: string | null;
  name: string | null;
  description: string | null;
  tags: Array<string> | null;
  substanceDefinition: SubstanceDefRef | null;
  isVox: boolean | null;
  isPlotDeed: boolean | null;
  deploySettings: DeploySettingsDefRef | null;
  gearSlotSets: Array<GearSlotSet> | null;
  itemType: ItemType | null;
}

export interface DeploySettingsDefRef {
  resourceID: string | null;
  isDoor: boolean | null;
  snapToGround: boolean | null;
  rotateYaw: boolean | null;
  rotatePitch: boolean | null;
  rotateRoll: boolean | null;
}

export interface GearSlotSet {
  gearSlots: Array<GearSlotDefRef> | null;
}

export type ItemType = "Basic" | "Vox" | "Ammo" | "Armor" | "Weapon" | "Block" | "Alloy" | "Substance" | "SiegeEngine";

export interface ItemStatsDescription {
  item: ItemStat_Single | null;
  alloy: AlloyStat_Single | null;
  substance: SubstanceStat_Single | null;
  durability: DurabilityStat_Single | null;
  weapon: WeaponStat_Single | null;
  block: BuildingBlockStat_Single | null;
  siegeEngine: SiegeEngineStat_Single | null;
  armor: Array<ArmorStatSet> | null;
  armorBySubpart: Array<ArmorStatBySubpart> | null;
}

export interface ItemStat_Single {
  quality: number | null;
  selfMass: number | null;
  totalMass: number | null;
  encumbrance: number | null;
  agilityRequirement: number | null;
  dexterityRequirement: number | null;
  strengthRequirement: number | null;
  vitalityRequirement: number | null;
  enduranceRequirement: number | null;
  attunementRequirement: number | null;
  willRequirement: number | null;
  faithRequirement: number | null;
  resonanceRequirement: number | null;
  unitCount: number | null;
}

export interface AlloyStat_Single {
  hardness: number | null;
  impactToughness: number | null;
  fractureChance: number | null;
  malleability: number | null;
  massPCF: number | null;
  density: number | null;
  meltingPoint: number | null;
  thermConductivity: number | null;
  slashingResistance: number | null;
  piercingResistance: number | null;
  crushingResistance: number | null;
  acidResistance: number | null;
  poisonResistance: number | null;
  diseaseResistance: number | null;
  earthResistance: number | null;
  waterResistance: number | null;
  fireResistance: number | null;
  airResistance: number | null;
  lightningResistance: number | null;
  frostResistance: number | null;
  lifeResistance: number | null;
  mindResistance: number | null;
  spiritResistance: number | null;
  radiantResistance: number | null;
  deathResistance: number | null;
  shadowResistance: number | null;
  chaosResistance: number | null;
  voidResistance: number | null;
  arcaneResistance: number | null;
  magicalResistance: number | null;
  hardnessFactor: number | null;
  strengthFactor: number | null;
  fractureFactor: number | null;
  massFactor: number | null;
  damageResistance: number | null;
  unitHealth: number | null;
}

export interface SubstanceStat_Single {
  hardness: number | null;
  impactToughness: number | null;
  fractureChance: number | null;
  malleability: number | null;
  massPCF: number | null;
  density: number | null;
  meltingPoint: number | null;
  thermConductivity: number | null;
  slashingResistance: number | null;
  piercingResistance: number | null;
  crushingResistance: number | null;
  acidResistance: number | null;
  poisonResistance: number | null;
  diseaseResistance: number | null;
  earthResistance: number | null;
  waterResistance: number | null;
  fireResistance: number | null;
  airResistance: number | null;
  lightningResistance: number | null;
  frostResistance: number | null;
  lifeResistance: number | null;
  mindResistance: number | null;
  spiritResistance: number | null;
  radiantResistance: number | null;
  deathResistance: number | null;
  shadowResistance: number | null;
  chaosResistance: number | null;
  voidResistance: number | null;
  arcaneResistance: number | null;
  magicalResistance: number | null;
  hardnessFactor: number | null;
  strengthFactor: number | null;
  fractureFactor: number | null;
  massFactor: number | null;
  unitHealth: number | null;
}

export interface DurabilityStat_Single {
  maxRepairPoints: number | null;
  maxHealth: number | null;
  fractureThreshold: number | null;
  fractureChance: number | null;
  currentRepairPoints: number | null;
  currentHealth: number | null;
  healthLossPerUse: number | null;
}

export interface WeaponStat_Single {
  piercingDamage: number | null;
  piercingBleed: number | null;
  piercingArmorPenetration: number | null;
  slashingDamage: number | null;
  slashingBleed: number | null;
  slashingArmorPenetration: number | null;
  crushingDamage: number | null;
  fallbackCrushingDamage: number | null;
  disruption: number | null;
  deflectionAmount: number | null;
  physicalProjectileSpeed: number | null;
  knockbackAmount: number | null;
  stability: number | null;
  falloffMinDistance: number | null;
  falloffMaxDistance: number | null;
  falloffReduction: number | null;
  deflectionRecovery: number | null;
  staminaCost: number | null;
  physicalPreparationTime: number | null;
  physicalRecoveryTime: number | null;
  range: number | null;
}

export interface BuildingBlockStat_Single {
  compressiveStrength: number | null;
  shearStrength: number | null;
  tensileStrength: number | null;
  density: number | null;
  healthUnits: number | null;
  buildTimeUnits: number | null;
  unitMass: number | null;
}

export interface SiegeEngineStat_Single {
  yawSpeedDegPerSec: number | null;
  pitchSpeedDegPerSec: number | null;
}

export interface ArmorStatSet {
  statsPerSlot: Array<ArmorStats> | null;
}

export interface ArmorStats {
  gearSlot: GearSlotDefRef | null;
  stats: ArmorStat_Single | null;
  resistances: DamageType_Single | null;
  mitigations: DamageType_Single | null;
}

export interface ArmorStat_Single {
  armorClass: number | null;
}

export interface DamageType_Single {
  none: number | null;
  slashing: number | null;
  piercing: number | null;
  crushing: number | null;
  physical: number | null;
  acid: number | null;
  poison: number | null;
  disease: number | null;
  earth: number | null;
  water: number | null;
  fire: number | null;
  air: number | null;
  lightning: number | null;
  frost: number | null;
  elemental: number | null;
  life: number | null;
  mind: number | null;
  spirit: number | null;
  radiant: number | null;
  light: number | null;
  death: number | null;
  shadow: number | null;
  chaos: number | null;
  void: number | null;
  dark: number | null;
  arcane: number | null;
  other: number | null;
  sYSTEM: number | null;
  all: number | null;
}

export interface ArmorStatBySubpart {
  subPartId: SubpartId | null;
  stats: ArmorStat_Single | null;
  resistances: DamageType_Single | null;
}

export interface ColorRGBA {
  r: number | null;
  g: number | null;
  b: number | null;
  a: number | null;
  rgba: string | null;
  hex: string | null;
  hexa: string | null;
}

export interface ItemLocationDescription {
  equipped: EquippedLocation | null;
  inContainer: InContainerLocation | null;
  inVox: InVoxJobLocation | null;
  inventory: InventoryLocation | null;
  ground: OnGroundLocation | null;
  building: BuildingPlacedLocation | null;
}

export interface EquippedLocation {
  characterID: CharacterID | null;
  gearSlots: Array<GearSlotDefRef> | null;
}

export interface InContainerLocation {
  containerInstanceID: ItemInstanceID | null;
  position: number | null;
  drawerID: ContainerDrawerID | null;
}

export type ContainerDrawerID = any;

export interface InVoxJobLocation {
  voxInstanceID: ItemInstanceID | null;
  itemSlot: SubItemSlot | null;
}

export type SubItemSlot = "Invalid" | "PrimarySubstance" | "SecondarySubstance1" | "SecondarySubstance2" | "SecondarySubstance3" | "Alloy" | "WeaponBlade" | "WeaponHandle" | "NonRecipe";

export interface InventoryLocation {
  characterID: CharacterID | null;
  position: number | null;
}

export interface OnGroundLocation {
  isDeployed: boolean | null;
  groupID: ItemInstanceID | null;
}

export interface BuildingPlacedLocation {
  buildingID: BuildingPlotInstanceID | null;
}

export type BuildingPlotInstanceID = any;

export interface ItemEquipRequirement {
  status: EquipRequirementStatus | null;
  requirementDescription: string | null;
  errorDescription: string | null;
}

export type EquipRequirementStatus = "Unknown" | "NotEquippable" | "NoRequirement" | "RequirementMet" | "RequirementNotMet" | "NoCharacterContext";

export interface ContainerDrawerGQL {
  id: ContainerDrawerID | null;
  containedItems: Array<Item> | null;
  requirements: RequirementDef | null;
  stats: ContainerDefStat_Single | null;
}

export interface RequirementDef {
  description: string | null;
  icon: string | null;
}

export interface ContainerDefStat_Single {
  maxItemCount: number | null;
  maxItemMass: number | null;
}

export interface FlagsPermissibleHolderGQL {
  userPermissions: number | null;
  userGrants: Array<FlagsPermissibleGQL> | null;
  permissibleSets: Array<FlagsPermissibleSetGQL> | null;
}

export interface FlagsPermissibleGQL {
  permissions: number | null;
  target: PermissibleTargetGQL | null;
}

export interface PermissibleTargetGQL {
  targetType: PermissibleTargetType | null;
  description: string | null;
}

export type PermissibleTargetType = "Invalid" | "Any" | "Faction" | "Character" | "ScenarioTeam" | "Warband" | "CharactersWarband" | "CharactersFaction" | "CharactersOrder" | "InNoScenario" | "Inverse" | "And" | "ScenarioRole" | "Scenario";

export interface FlagsPermissibleSetGQL {
  keyType: PermissibleSetKeyType | null;
  isActive: boolean | null;
  permissibles: Array<FlagsPermissibleGQL> | null;
}

export type PermissibleSetKeyType = "Invalid" | "Faction" | "ScenarioTeam" | "ScenarioRole";

export interface MetricsData {
  playerCounts: Array<GraphiteRenderJson> | null;
}

export interface PlayerCountsMetricsDataArgs {
  server: string | null;
  from: string | null;
  until: string | null;
}

export interface GraphiteRenderJson {
  target: string | null;
  datapoints: Array<number> | null;
}

export interface Status {
  statuses: Array<StatusDef> | null;
}

export interface StatusDef {
  description: string | null;
  iconURL: string | null;
  id: StatusID | null;
  name: string | null;
  uiText: string | null;
  numericID: number | null;
}

export type StatusID = any;

export interface CharacterProgressionData {
  collectedProgressionSummary: CharacterSummaryDBModel | null;
  unCollectedDayLogs: Array<CharacterDaySummaryDBModel> | null;
  dayLogByID: CharacterDaySummaryDBModel | null;
  adjustmentsByDayLogID: Array<CharacterAdjustmentDBModel> | null;
  characterDays: Array<CharacterDaySummaryDBModel> | null;
  characterAdjustments: Array<CharacterAdjustmentDBModel> | null;
  accountSummary: AccountProgressionSummary | null;
}

export interface DayLogByIdCharacterProgressionDataArgs {
  logID: string | null;
}

export interface AdjustmentsByDayLogIdCharacterProgressionDataArgs {
  logID: string | null;
}

export interface CharacterDaysCharacterProgressionDataArgs {
  startDate: Date | null;
  endDate: Date | null;
}

export interface CharacterAdjustmentsCharacterProgressionDataArgs {
  startDate: Date | null;
  endDate: Date | null;
}

export interface AccountSummaryCharacterProgressionDataArgs {
  startDate: Date | null;
  endDate: Date | null;
}

export interface CharacterSummaryDBModel {
  accountID: AccountID | null;
  shardID: ShardID | null;
  lastDayLogProcessedID: CharacterDaySummaryInstanceID | null;
  lastDayProcessedStart: Date | null;
  activeDayCount: number | null;
  secondsActive: number | null;
  distanceMoved: number | null;
  damage: DamageSummaryDBModel | null;
  plots: PlotSummaryDBModel | null;
  crafting: CraftingSummaryDBModel | null;
  skillPartsUsed: Array<SkillPartUsedSummaryDBModel> | null;
  scenarioOutcomes: ScenarioOutcome_UInt32 | null;
}

export type AccountID = any;

export type CharacterDaySummaryInstanceID = any;

export interface PlotSummaryDBModel {
  factionPlotsCaptured: number | null;
  scenarioPlotsCaptured: number | null;
}

export interface SkillPartUsedSummaryDBModel {
  skillPartID: string | null;
  usedInCombatCount: number | null;
  usedNonCombatCount: number | null;
}

export interface ScenarioOutcome_UInt32 {
  invalid: number | null;
  win: number | null;
  lose: number | null;
  draw: number | null;
  killed: number | null;
  restart: number | null;
}

export interface CharacterDaySummaryDBModel {
  id: CharacterDaySummaryInstanceID | null;
  shardDayLogID: ShardDaySummaryInstanceID | null;
  shardID: ShardID | null;
  dayStart: Date | null;
  dayEnd: Date | null;
  characterID: CharacterID | null;
  secondsActive: number | null;
  distanceMoved: number | null;
  skillPartsUsed: Array<SkillPartUsedSummaryDBModel> | null;
  damage: DamageSummaryDBModel | null;
  plots: PlotSummaryDBModel | null;
  crafting: CraftingSummaryDBModel | null;
  state: States | null;
  scenarios: Array<FinishedScenario> | null;
}

export type ShardDaySummaryInstanceID = any;

export type States = "Initial" | "Handled" | "Preserved";

export interface FinishedScenario {
  scenarioID: ScenarioInstanceID | null;
  scenarioDefinitionID: string | null;
  outcome: ScenarioOutcome | null;
  activeAtEnd: boolean | null;
  teamID: ScenarioTeamID | null;
  score: number | null;
}

export interface CharacterAdjustmentDBModel {
  shardDayLogID: ShardDaySummaryInstanceID | null;
  characterDayLogID: CharacterDaySummaryInstanceID | null;
  reason: CharacterAdjustmentReasonGQLField | null;
  adjustment: CharacterAdjustmentGQLField | null;
  dayEnd: Date | null;
  sequence: number | null;
}

export interface CharacterAdjustmentReasonGQLField {
  skillPartLevel: CharacterAdjustmentReasonSkillPartLevel | null;
  useSkillPart: CharacterAdjustmentReasonUseSkillPart | null;
  useSkills: CharacterAdjustmentReasonUseSkills | null;
  adminGrant: boolean | null;
}

export interface CharacterAdjustmentReasonSkillPartLevel {
  skillPartID: string | null;
  skillPartLevel: number | null;
}

export interface CharacterAdjustmentReasonUseSkillPart {
  skillID: string | null;
  inCombatCount: number | null;
  nonCombatCount: number | null;
}

export interface CharacterAdjustmentReasonUseSkills {
  inCombatCount: number | null;
  nonCombatCount: number | null;
}

export interface CharacterAdjustmentGQLField {
  addItem: CharacterAdjustmentAddItem | null;
  playerStat: CharacterAdjustmentPlayerStat | null;
  skillPart: CharacterAdjustmentSkillPartProgress | null;
  skillNode: CharacterAdjustmentApplySkillNode | null;
}

export interface CharacterAdjustmentAddItem {
  itemInstanceIDS: Array<ItemInstanceID> | null;
  staticDefinitionID: string | null;
  unitCount: number | null;
  quality: ItemQuality | null;
}

export type ItemQuality = any;

export interface CharacterAdjustmentPlayerStat {
  playerStat: PlayerStat | null;
  previousBonus: number | null;
  newBonus: number | null;
  previousProgressionPoints: number | null;
  newProgressionPoints: number | null;
}

export interface CharacterAdjustmentSkillPartProgress {
  skillPartID: string | null;
  previousLevel: number | null;
  previousProgressionPoints: number | null;
  newLevel: number | null;
  newProgressPoints: number | null;
}

export interface CharacterAdjustmentApplySkillNode {
  skillNodePath: string | null;
}

export interface AccountProgressionSummary {
  characterCount: number | null;
  activeDayCount: number | null;
  secondsActive: number | null;
  distanceMoved: number | null;
  statsGained: number | null;
  skillPartLevels: number | null;
  damage: DamageSummaryDBModel | null;
  crafting: CraftingSummaryDBModel | null;
  scenarioOutcomes: ScenarioOutcome_UInt32 | null;
}

export interface ShardProgressionData {
  progressionSummary: ShardSummaryDBModel | null;
  progressionDaySummary: ShardDaySummaryDBModel | null;
  shardDays: Array<ShardDaySummaryDBModel> | null;
  progressionSummaryRange: ShardSummaryDBModel | null;
  adjustmentsSummary: CharacterAdjustmentSummary | null;
  scenarioSummaries: Array<ScenarioSummaryDBModel> | null;
  realmSummary: RealmDaySummaryDBModel | null;
}

export interface ProgressionDaySummaryShardProgressionDataArgs {
  logID: string | null;
}

export interface ShardDaysShardProgressionDataArgs {
  startDate: Date | null;
  endDate: Date | null;
}

export interface ProgressionSummaryRangeShardProgressionDataArgs {
  startDate: Date | null;
  endDate: Date | null;
}

export interface AdjustmentsSummaryShardProgressionDataArgs {
  logID: string | null;
  startDate: Date | null;
  endDate: Date | null;
}

export interface ScenarioSummariesShardProgressionDataArgs {
  startDate: Date | null;
  endDate: Date | null;
}

export interface RealmSummaryShardProgressionDataArgs {
  shardDayID: string | null;
  faction: string | null;
}

export interface ShardSummaryDBModel {
  shardID: ShardID | null;
  playerCharacters: CharacterSummary | null;
  nonPlayerCharacters: CharacterSummary | null;
  plots: PlotSummary | null;
  scenarios: ScenarioSummary | null;
  realmSummaries: Faction_RealmSummaryDBModel | null;
  daysProcessed: number | null;
}

export interface CharacterSummary {
  secondsActive: number | null;
  distanceMoved: number | null;
  damage: DamageSummaryDBModel | null;
  crafting: CraftingSummaryDBModel | null;
}

export interface PlotSummary {
  blocksCreated: number | null;
  blocksDestroyed: number | null;
}

export interface ScenarioSummary {
  started: number | null;
  finished: number | null;
  restarted: number | null;
  killed: number | null;
}

export interface Faction_RealmSummaryDBModel {
  factionless: RealmSummaryDBModel | null;
  tdd: RealmSummaryDBModel | null;
  viking: RealmSummaryDBModel | null;
  arthurian: RealmSummaryDBModel | null;
  cOUNT: RealmSummaryDBModel | null;
}

export interface RealmSummaryDBModel {
  faction: Faction | null;
  secondsActive: number | null;
  distanceMoved: number | null;
  damage: DamageSummaryDBModel | null;
  crafting: CraftingSummaryDBModel | null;
}

export interface ShardDaySummaryDBModel {
  dayStart: Date | null;
  dayEnd: Date | null;
  playerCharacters: CharacterSummary | null;
  nonPlayerCharacters: CharacterSummary | null;
  plots: PlotSummary | null;
  scenarios: Array<ScenarioSummary> | null;
}

export interface CharacterAdjustmentSummary {
  items: Array<ItemsAdded> | null;
  stats: Array<StatBonusPoints> | null;
  skillParts: Array<SkillPartLevels> | null;
  skillNodseApplied: Array<SkillNodeApplied> | null;
  characterCount: number | null;
  maxAdjustmentsOnCharacter: number | null;
  characterIDWithMaxAdjustments: CharacterID | null;
  averageAdjustementsPerCharacter: number | null;
}

export interface ItemsAdded {
  staticDefinitionID: string | null;
  unitCount: number | null;
}

export interface StatBonusPoints {
  stat: PlayerStat | null;
  bonusChange: number | null;
}

export interface SkillPartLevels {
  skillPartID: string | null;
  levelChange: number | null;
}

export interface SkillNodeApplied {
  skillNodePath: string | null;
  count: number | null;
}

export interface RealmDaySummaryDBModel {
  shardDayLogID: ShardDaySummaryInstanceID | null;
  faction: Faction | null;
  shardID: ShardID | null;
  dayStart: Date | null;
  dayEnd: Date | null;
  secondsActive: number | null;
  distanceMoved: number | null;
  characterCount: number | null;
  skillPartsUsed: Array<SkillPartUsedSummaryDBModel> | null;
  damage: DamageSummaryDBModel | null;
  crafting: CraftingSummaryDBModel | null;
}

export interface EntityItemResult {
  items: Array<Item> | null;
}

export interface MyInventory {
  items: Array<Item> | null;
  itemCount: number | null;
  totalMass: number | null;
  currency: number | null;
}

export interface MyEquippedItems {
  items: Array<EquippedItem> | null;
  itemCount: number | null;
  totalMass: number | null;
  armorStats: Array<SubpartArmorStats> | null;
}

export interface EquippedItem {
  gearSlots: Array<GearSlotDefRef> | null;
  item: Item | null;
}

export interface SubpartArmorStats {
  subpartID: SubpartId | null;
  armorClass: number | null;
  resistances: DamageType_Single | null;
  mitigations: DamageType_Single | null;
}

export interface ResourceNodeResult {
  staticDefinition: ResourceNodeDefRef | null;
  resourceNodeInstanceID: ResourceNodeInstanceID | null;
  currentHealth: number | null;
  maxHealth: number | null;
  faction: Faction | null;
  subItems: Array<ResourceNodeSubItem> | null;
  permissibleHolder: FlagsPermissibleHolderGQL | null;
}

export interface ResourceNodeDefRef {
  id: string | null;
  name: string | null;
  requirements: RequirementDef | null;
  secondsBetweenUse: number | null;
  maxActors: number | null;
  mapIconURL: string | null;
  mapIconAnchorX: number | null;
  mapIconAnchorY: number | null;
}

export type ResourceNodeInstanceID = any;

export interface ResourceNodeSubItem {
  subItemDefinitionRef: ResourceNodeSubItemDefRef | null;
  takenCount: number | null;
}

export interface ResourceNodeSubItemDefRef {
  id: string | null;
  startingUnits: number | null;
  entries: Array<Entry> | null;
}

export interface Entry {
  faction: Faction | null;
  harvestItems: Array<HarvestItem> | null;
}

export interface HarvestItem {
  itemDefinition: ItemDefRef | null;
  weight: number | null;
  minQuality: number | null;
  maxQuality: number | null;
  minUnitCount: number | null;
  maxUnitCount: number | null;
}

export interface SecureTradeStatus {
  myState: SecureTradeState | null;
  myItems: Array<Item> | null;
  theirEntityID: EntityID | null;
  theirState: SecureTradeState | null;
  theirItems: Array<Item> | null;
}

export type SecureTradeState = "None" | "Invited" | "ModifyingItems" | "Locked" | "Confirmed" | "Transferring";

export type EntityID = any;

export interface Test extends TestInterface {
  integer: number | null;
  float: number | null;
  string: string | null;
  characters: Array<Character> | null;
  sg1: TestEnum_String | null;
  sg1Titles: TestEnum_String | null;
  sg1Floats: TestEnum_Single | null;
  homeArray: Array<string> | null;
  homeList: Array<string> | null;
  weapons: Array<string> | null;
}

export interface TestInterface {
  integer: number | null;
  float: number | null;
}

export interface Character {
  name: string | null;
  race: string | null;
}

export interface TestEnum_String {
  jackson: string | null;
  carter: string | null;
  oneill: string | null;
  tealc: string | null;
}

export interface TestEnum_Single {
  jackson: number | null;
  carter: number | null;
  oneill: number | null;
  tealc: number | null;
}

export interface WorldData {
  spawnPoints: Array<SpawnPoint> | null;
  map: MapData | null;
}

export interface SpawnPoint {
  id: string | null;
  faction: Faction | null;
  position: Vec3f | null;
}

export interface Vec3f {
  x: number | null;
  y: number | null;
  z: number | null;
}

export interface MapData {
  static: Array<MapPoint> | null;
  dynamic: Array<MapPoint> | null;
}

export interface MapPoint {
  position: Array<number> | null;
  anchor: Array<number> | null;
  tooltip: string | null;
  actions: MapPointActions | null;
  src: string | null;
  color: string | null;
  offset: Array<number> | null;
  size: Array<number> | null;
}

export interface MapPointActions {
  onClick: MapPointAction | null;
}

export interface MapPointAction {
  type: MapPointActionType | null;
  command: string | null;
}

export type MapPointActionType = "ClientCommand";

export interface CraftingRecipes {
  voxStatus: VoxStatus | null;
  recipesMatchingIngredients: Array<string> | null;
  possibleIngredients: Array<Item> | null;
  possibleIngredientsWithSlots: Array<PossibleVoxIngredientGQL> | null;
  possibleItemSlots: Array<SubItemSlot> | null;
  blockRecipes: Array<BlockRecipeDefRef> | null;
  purifyRecipes: Array<PurifyRecipeDefRef> | null;
  grindRecipes: Array<GrindRecipeDefRef> | null;
  refineRecipes: Array<RefineRecipeDefRef> | null;
  shapeRecipes: Array<ShapeRecipeDefRef> | null;
  makeRecipes: Array<MakeRecipeDefRef> | null;
}

export interface PossibleIngredientsCraftingRecipesArgs {
  slot: string | null;
}

export interface VoxStatus {
  voxState: VoxState | null;
  jobType: VoxJobType | null;
  jobState: VoxJobState | null;
  voxHealthCost: number | null;
  outputItems: Array<Item> | null;
  totalCraftingTime: number | null;
  timeRemaining: number | null;
  givenName: string | null;
  itemCount: number | null;
  recipeID: string | null;
  endQuality: number | null;
  usedRepairPoints: number | null;
  startTime: Date | null;
  grindRecipe: GrindRecipeDefRef | null;
  purifyRecipe: PurifyRecipeDefRef | null;
  blockRecipe: BlockRecipeDefRef | null;
  refineRecipe: RefineRecipeDefRef | null;
  shapeRecipe: ShapeRecipeDefRef | null;
  makeRecipe: MakeRecipeDefRef | null;
  ingredients: Array<Item> | null;
}

export type VoxState = "NotFound" | "NotOwnedByPlayer" | "Found";

export type VoxJobType = "Invalid" | "Block" | "Grind" | "Make" | "Purify" | "Refine" | "Repair" | "Salvage" | "Shape";

export type VoxJobState = "None" | "Configuring" | "Running" | "Finished";

export interface GrindRecipeDefRef {
  id: string | null;
  ingredientItem: ItemDefRef | null;
  outputItem: ItemDefRef | null;
}

export interface PurifyRecipeDefRef {
  id: string | null;
  ingredientItem: ItemDefRef | null;
  outputItem: ItemDefRef | null;
}

export interface BlockRecipeDefRef {
  id: string | null;
  outputItem: ItemDefRef | null;
  ingredients: Array<RecipeIngredientDef> | null;
}

export interface RecipeIngredientDef {
  ingredient: ItemDefRef | null;
  requirementPath: string | null;
  minPercent: Decimal | null;
  maxPercent: Decimal | null;
  minQuality: number | null;
  maxQuality: number | null;
}

export type Decimal = any;

export interface RefineRecipeDefRef {
  id: string | null;
  ingredientItem: ItemDefRef | null;
}

export interface ShapeRecipeDefRef {
  id: string | null;
  outputItem: ItemDefRef | null;
  lossPercent: number | null;
  ingredients: Array<RecipeIngredientDef> | null;
}

export interface MakeRecipeDefRef {
  id: string | null;
  outputItem: ItemDefRef | null;
  ingredients: Array<MakeIngredientDef> | null;
}

export interface MakeIngredientDef {
  slot: SubItemSlot | null;
  ingredient: ItemDefRef | null;
  requirementDescription: string | null;
  minQuality: number | null;
  maxQuality: number | null;
  unitCount: number | null;
}

export interface PossibleVoxIngredientGQL {
  item: Item | null;
  slots: Array<SubItemSlot> | null;
}

export interface Channel {
  id: number | null;
  name: string | null;
  description: string | null;
  permissions: PatchPermissions | null;
}

export type PatchPermissions = "Public" | "AllBackers" | "InternalTest" | "Development" | "Alpha" | "Beta1" | "Beta2" | "Beta3";

export interface CUSubscription {
  myInventoryItems: Item | null;
}

export interface PermissionInfo {
  id: string | null;
  name: string | null;
  description: string | null;
  enables: Array<string> | null;
}

export interface BuildServerStatusDetail {
  serverName: string | null;
  timestamp: Date | null;
  state: States | null;
  id: ChannelID | null;
  isBuilding: boolean | null;
  buildStart: Date | null;
  buildFinished: Date | null;
}

export interface ShardState {
  shardID: number | null;
  activeGroupCount: number | null;
  playersInWarbands: number | null;
  playersInBattlegroups: number | null;
}

export interface GroupServerStatusDetail {
  serverName: string | null;
  state: States | null;
  timestamp: Date | null;
  uptime: string | null;
  buildNumber: number | null;
  groupInfo: Array<ShardState> | null;
}

export interface PatchChannelStatus {
  id: number | null;
  isUpdating: boolean | null;
  lastUpdated: Date | null;
  fileCount: number | null;
  compressedSize: number | null;
  uncompressedSize: number | null;
}

export interface PatchServerStatusDetail {
  serverName: string | null;
  timestamp: Date | null;
  state: States | null;
  channels: Array<PatchChannelStatus> | null;
}

export interface WebAPIStatusDetail {
  serverName: string | null;
  state: States | null;
  asyncRPC: Array<AsyncRPCConnectionStatus> | null;
  worldState: Array<WorldStateStatus> | null;
  timestamp: Date | null;
  uptime: string | null;
  buildNumber: number | null;
}

export interface CustomRank {
  level: number | null;
  name: string | null;
  groupID: GroupID | null;
  permissions: Array<PermissionInfo> | null;
}

export interface CharacterStatProgressionDBModel {
  bonusPoints: number | null;
  progressionPoints: number | null;
}

export interface SkillPartProgressionDBModel {
  level: number | null;
  progressionPoints: number | null;
}

export interface TeamOutcomeScenario {
  teamID: ScenarioTeamID | null;
  outcome: ScenarioOutcome | null;
}

export interface Euler3f {
  x: number | null;
  y: number | null;
  z: number | null;
}

export interface SecureTradeLocation {
  characterID: CharacterID | null;
}

export interface BlockStatsDef {
  id: string | null;
}

export interface BlockDef {
  id: string | null;
}

export interface SiegeEngineItemDef {
  id: string | null;
}

export type WeaponType = "NONE" | "Arrow" | "Dagger" | "Sword" | "Hammer" | "Axe" | "Mace" | "GreatSword" | "GreatHammer" | "GreatAxe" | "GreatMace" | "Spear" | "Staff" | "Polearm" | "Shield" | "LongBow" | "ShortBow" | "Throwing" | "Focus" | "LongSword" | "All";

export interface WeaponConfigDef {
  id: string | null;
  weaponType: WeaponType | null;
  ammo: boolean | null;
}

export interface FactionTrait {
  requires: boolean | null;
  category: TraitCategory | null;
  id: string | null;
  name: string | null;
  icon: string | null;
  description: string | null;
  points: number | null;
  specifer: string | null;
}

export interface RaceTrait {
  requires: boolean | null;
  category: TraitCategory | null;
  id: string | null;
  name: string | null;
  icon: string | null;
  description: string | null;
  points: number | null;
  specifer: string | null;
}

export interface ClassTrait {
  requires: boolean | null;
  category: TraitCategory | null;
  id: string | null;
  name: string | null;
  icon: string | null;
  description: string | null;
  points: number | null;
  specifer: string | null;
}

export interface PlayerCounts {
  arthurian: number | null;
  tuatha: number | null;
  viking: number | null;
  timeTicks: number | null;
}

export interface SG1Member extends Character {
  name: string | null;
  race: string | null;
  rank: string | null;
}

export interface Goauld extends Character {
  name: string | null;
  race: string | null;
  homePlanet: string | null;
}
