/**
 * ===============================================================================
 * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING 
 * 
 * CHANGES IN THIS FILES NEED TO BE ALWAYS DONE TWICE
 * 
 * ONCE IN QueryResponseTypes and once in ../transport/Command.ts
 * Command.Identifier is for the actual transformation from a string
 * QueryResponseTypes is for the TypeScript typings
 * 
 * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING 
 * ===============================================================================
 */

import * as ENUM from "./enum"
import { TokenCustomSet } from "./ResponseTypes"

export type QueryResponse = Partial<QueryResponseTypes>

export declare interface QueryResponseTypes {
  sid: number,
  server_id: number,
  virtualserver_nickname: string,
  virtualserver_unique_identifier: string,
  virtualserver_name: string,
  virtualserver_welcomemessage: string,
  virtualserver_platform: string,
  virtualserver_version: string,
  virtualserver_maxclients: number,
  virtualserver_password: string,
  virtualserver_clientsonline: number,
  virtualserver_channelsonline: number,
  virtualserver_created: number,
  virtualserver_uptime: number,
  virtualserver_codec_encryption_mode: ENUM.CodecEncryptionMode,
  virtualserver_hostmessage: string,
  virtualserver_hostmessage_mode: ENUM.HostMessageMode,
  virtualserver_filebase: string,
  virtualserver_default_server_group: number,
  virtualserver_default_channel_group: number,
  virtualserver_flag_password: number,
  virtualserver_default_channel_admin_group: number,
  virtualserver_max_download_total_bandwidth: number,
  virtualserver_max_upload_total_bandwidth: number,
  virtualserver_hostbanner_url: string,
  virtualserver_hostbanner_gfx_url: string,
  virtualserver_hostbanner_gfx_interval: number,
  virtualserver_complain_autoban_count: number,
  virtualserver_complain_autoban_time: number,
  virtualserver_complain_remove_time: number,
  virtualserver_min_clients_in_channel_before_forced_silence: number,
  virtualserver_priority_speaker_dimm_modificator: number,
  virtualserver_id: number,
  virtualserver_antiflood_points_needed_plugin_block: number,
  virtualserver_antiflood_points_tick_reduce: number,
  virtualserver_antiflood_points_needed_command_block: number,
  virtualserver_antiflood_points_needed_ip_block: number,
  virtualserver_client_connections: number,
  virtualserver_query_client_connections: number,
  virtualserver_hostbutton_tooltip: string,
  virtualserver_hostbutton_url: string,
  virtualserver_hostbutton_gfx_url: string,
  virtualserver_queryclientsonline: number,
  virtualserver_download_quota: number,
  virtualserver_upload_quota: number,
  virtualserver_month_bytes_downloaded: number,
  virtualserver_month_bytes_uploaded: number,
  virtualserver_total_bytes_downloaded: number,
  virtualserver_total_bytes_uploaded: number,
  virtualserver_port: number,
  virtualserver_autostart: number,
  virtualserver_machine_id: string,
  virtualserver_needed_identity_security_level: number,
  virtualserver_log_client: number,
  virtualserver_log_query: number,
  virtualserver_log_channel: number,
  virtualserver_log_permissions: number,
  virtualserver_log_server: number,
  virtualserver_log_filetransfer: number,
  virtualserver_min_client_version: number,
  virtualserver_name_phonetic: string,
  virtualserver_icon_id: number,
  virtualserver_reserved_slots: number,
  virtualserver_total_packetloss_speech: number,
  virtualserver_total_packetloss_keepalive: number,
  virtualserver_total_packetloss_control: number,
  virtualserver_total_packetloss_total: number,
  virtualserver_total_ping: number,
  virtualserver_ip: string[],
  virtualserver_weblist_enabled: number,
  virtualserver_ask_for_privilegekey: number,
  virtualserver_hostbanner_mode: ENUM.HostBannerMode,
  virtualserver_channel_temp_delete_delay_default: number,
  virtualserver_min_android_version: number,
  virtualserver_min_ios_version: number,
  virtualserver_status: string,
  connection_filetransfer_bandwidth_sent: number,
  connection_filetransfer_bandwidth_received: number,
  connection_filetransfer_bytes_sent_total: number,
  connection_filetransfer_bytes_received_total: number,
  connection_packets_sent_speech: number,
  connection_bytes_sent_speech: number,
  connection_packets_received_speech: number,
  connection_bytes_received_speech: number,
  connection_packets_sent_keepalive: number,
  connection_bytes_sent_keepalive: number,
  connection_packets_received_keepalive: number,
  connection_bytes_received_keepalive: number,
  connection_packets_sent_control: number,
  connection_bytes_sent_control: number,
  connection_packets_received_control: number,
  connection_bytes_received_control: number,
  connection_packets_sent_total: number,
  connection_bytes_sent_total: number,
  connection_packets_received_total: number,
  connection_bytes_received_total: number,
  connection_bandwidth_sent_last_second_total: number,
  connection_bandwidth_sent_last_minute_total: number,
  connection_bandwidth_received_last_second_total: number,
  connection_bandwidth_received_last_minute_total: number,
  connection_packetloss_total: number,
  connection_ping: number,
  clid: number,
  client_id: number,
  cldbid: number,
  client_database_id: number,
  client_channel_id: number,
  client_origin_server_id: number,
  client_nickname: string,
  client_type: ENUM.ClientType,
  client_away: number,
  client_away_message: string,
  client_flag_talking: number,
  client_input_muted: number,
  client_output_muted: number,
  client_input_hardware: number,
  client_output_hardware: number,
  client_talk_power: number,
  client_is_talker: number,
  client_is_priority_speaker: number,
  client_is_recording: number,
  client_is_channel_commander: number,
  client_unique_identifier: string,
  client_servergroups: number[],
  client_channel_group_id: number,
  client_channel_group_inherited_channel_id: number,
  client_version: string,
  client_platform: string,
  client_idle_time: number,
  client_created: number,
  client_lastconnected: number,
  client_icon_id: number,
  client_country: string,
  client_outputonly_muted: number,
  client_default_channel: number,
  client_meta_data: string,
  client_version_sign: string,
  client_security_hash: string,
  client_login_name: string,
  client_login_password: string,
  client_totalconnections: number,
  client_flag_avatar: string,
  client_talk_request: number,
  client_talk_request_msg: string,
  client_month_bytes_uploaded: number,
  client_month_bytes_downloaded: number,
  client_total_bytes_uploaded: number,
  client_total_bytes_downloaded: number,
  client_nickname_phonetic: string,
  client_default_token: string,
  client_badges: string,
  client_base64HashClientUID: string,
  connection_connected_time: number,
  connection_client_ip: string,
  client_myteamspeak_id: string,
  client_integrations: string,
  client_description: string,
  client_needed_serverquery_view_power: number,
  client_myteamspeak_avatar: string,
  client_signed_badges: string,
  client_lastip: string,
  cid: number,
  pid: number,
  cpid: number,
  order: number,
  channel_cpid: number,
  channel_order: number,
  channel_name: string,
  channel_password: string,
  channel_description: string,
  channel_topic: string,
  channel_flag_default: number,
  channel_flag_password: number,
  channel_flag_permanent: number,
  channel_flag_semi_permanent: number,
  channel_flag_temporary: number,
  channel_codec: ENUM.Codec,
  channel_codec_quality: number,
  channel_needed_talk_power: number,
  channel_icon_id: number,
  total_clients_family: number,
  channel_maxclients: number,
  channel_maxfamilyclients: number,
  total_clients: number,
  channel_needed_subscribe_power: number,
  channel_codec_latency_factor: number,
  channel_codec_is_unencrypted: number,
  channel_security_salt: string,
  channel_delete_delay: number,
  channel_flag_maxclients_unlimited: number,
  channel_flag_maxfamilyclients_unlimited: number,
  channel_flag_maxfamilyclients_inherited: number,
  channel_filepath: string,
  channel_forced_silence: number,
  channel_name_phonetic: string,
  channel_flag_private: number,
  channel_banner_gfx_url: string,
  channel_banner_mode: number,
  seconds_empty: number,
  cgid: number,
  sgid: number,
  permid: number,
  permvalue: number,
  permnegated: number,
  permskip: number,
  permsid: string,
  t: number,
  id1: number,
  id2: number,
  p: number,
  v: number,
  n: number,
  s: number,
  reasonid: number,
  reasonmsg: string,
  ctid: number,
  cfid: number,
  targetmode: ENUM.TextMessageTargetMode,
  target: number,
  invokerid: number,
  invokername: string,
  invokeruid: string,
  hash: string,
  last_pos: number,
  file_size: number,
  l: string,
  path: string,
  size: number,
  clientftfid: number,
  serverftfid: number,
  current_speed: number,
  average_speed: number,
  runtime: number,
  sizedone: number,
  sender: number,
  status: number
  ftkey: string,
  port: number,
  proto: number,
  datetime: number,
  host_timestamp_utc: number,
  instance_uptime: number,
  virtualservers_running_total: number,
  virtualservers_total_channels_online: number,
  virtualservers_total_clients_online: number,
  virtualservers_total_maxclients: number,
  serverinstance_database_version: number,
  serverinstance_filetransfer_port: number,
  serverinstance_serverquery_max_connections_per_ip: number,
  serverinstance_max_download_total_bandwidth: number,
  serverinstance_max_upload_total_bandwidth: number,
  serverinstance_guest_serverquery_group: number,
  serverinstance_pending_connections_per_ip: number,
  serverinstance_permissions_version: number,
  serverinstance_serverquery_flood_ban_time: number,
  serverinstance_serverquery_flood_commands: number,
  serverinstance_serverquery_flood_time: number,
  serverinstance_template_channeladmin_group: number,
  serverinstance_template_channeldefault_group: number,
  serverinstance_template_serveradmin_group: number,
  serverinstance_template_serverdefault_group: number,
  msgid: number,
  timestamp: number,
  cluid: string,
  subject: string,
  message: string,
  version: string,
  build: number,
  platform: string,
  name: string,
  token: string,
  tokencustomset: TokenCustomSet[],
  value: string,
  banid: number,
  id: number,
  msg: string,
  extra_msg: string,
  failed_permid: number,
  ident: string
  ip: string
  nickname: string
  uid: string
  desc: string
  pw_clear: string
  start: number
  end: number
  tcid: number
  permname: string
  permdesc: string
  token_type: ENUM.TokenType
  token1: string
  token2: string
  token_id1: number
  token_id2: number
  token_created: number
  token_description: string
  flag_read: number
  tcldbid: number
  tname: string
  fcldbid: number
  fname: string
  mytsid: string
  lastnickname: string
  created: number
  duration: number
  invokercldbid: number
  enforcements: number
  reason: string
  type: number
  iconid: number
  savedb: number
  namemode: number
  n_modifyp: number
  n_member_addp: number
  n_member_removep: number
  sortid: number
  count: number
  salt: string
  snapshot: string

}