// Code generated by tools/openapigen. DO NOT EDIT.
export type OnlineAPISupport = number;
export type ProcessState = string;
export type Protocol = string;
export type SubLinkProvider = unknown;
export type staticEgressResolver = string;
export type transportBits = number;

export interface AllSetting {
  datepicker: string;
  expireDiff: number;
  externalTrafficInformEnable: boolean;
  externalTrafficInformURI: string;
  ldapAutoCreate: boolean;
  ldapAutoDelete: boolean;
  ldapBaseDN: string;
  ldapBindDN: string;
  ldapDefaultExpiryDays: number;
  ldapDefaultLimitIP: number;
  ldapDefaultTotalGB: number;
  ldapEnable: boolean;
  ldapFlagField: string;
  ldapHost: string;
  ldapInboundTags: string;
  ldapInsecureSkipVerify: boolean;
  ldapInvertFlag: boolean;
  ldapPassword: string;
  ldapPort: number;
  ldapSyncCron: string;
  ldapTruthyValues: string;
  ldapUseTLS: boolean;
  ldapUserAttr: string;
  ldapUserFilter: string;
  ldapVlessField: string;
  pageSize: number;
  panelOutbound: string;
  remarkTemplate: string;
  restartXrayOnClientDisable: boolean;
  sessionMaxAge: number;
  smtpCpu: number;
  smtpEnable: boolean;
  smtpEnabledEvents: string;
  smtpEncryptionType: string;
  smtpHost: string;
  smtpMemory: number;
  smtpPassword: string;
  smtpPort: number;
  smtpTo: string;
  smtpUsername: string;
  subAnnounce: string;
  subCertFile: string;
  subClashEnable: boolean;
  subClashEnableRouting: boolean;
  subClashPath: string;
  subClashRules: string;
  subClashURI: string;
  subDomain: string;
  subEnable: boolean;
  subEnableRouting: boolean;
  subEncrypt: boolean;
  subHideSettings: boolean;
  subIncyEnableRouting: boolean;
  subIncyRoutingRules: string;
  subJsonEnable: boolean;
  subJsonFinalMask: string;
  subJsonMux: string;
  subJsonPath: string;
  subJsonRules: string;
  subJsonURI: string;
  subKeyFile: string;
  subListen: string;
  subPath: string;
  subPort: number;
  subProfileUrl: string;
  subRoutingRules: string;
  subSupportUrl: string;
  subThemeDir: string;
  subTitle: string;
  subURI: string;
  subUpdates: number;
  tgBotAPIServer: string;
  tgBotBackup: boolean;
  tgBotChatId: string;
  tgBotEnable: boolean;
  tgBotProxy: string;
  tgBotToken: string;
  tgCpu: number;
  tgEnabledEvents: string;
  tgLang: string;
  tgMemory: number;
  tgRunTime: string;
  timeLocation: string;
  trafficDiff: number;
  trustedProxyCIDRs: string;
  twoFactorEnable: boolean;
  twoFactorToken: string;
  warpUpdateInterval: number;
  webBasePath: string;
  webCertFile: string;
  webDomain: string;
  webKeyFile: string;
  webListen: string;
  webPort: number;
}

export interface AllSettingView {
  datepicker: string;
  expireDiff: number;
  externalTrafficInformEnable: boolean;
  externalTrafficInformURI: string;
  hasApiToken: boolean;
  hasLdapPassword: boolean;
  hasNordSecret: boolean;
  hasSmtpPassword: boolean;
  hasTgBotToken: boolean;
  hasTwoFactorToken: boolean;
  hasWarpSecret: boolean;
  ldapAutoCreate: boolean;
  ldapAutoDelete: boolean;
  ldapBaseDN: string;
  ldapBindDN: string;
  ldapDefaultExpiryDays: number;
  ldapDefaultLimitIP: number;
  ldapDefaultTotalGB: number;
  ldapEnable: boolean;
  ldapFlagField: string;
  ldapHost: string;
  ldapInboundTags: string;
  ldapInsecureSkipVerify: boolean;
  ldapInvertFlag: boolean;
  ldapPassword: string;
  ldapPort: number;
  ldapSyncCron: string;
  ldapTruthyValues: string;
  ldapUseTLS: boolean;
  ldapUserAttr: string;
  ldapUserFilter: string;
  ldapVlessField: string;
  pageSize: number;
  panelOutbound: string;
  remarkTemplate: string;
  restartXrayOnClientDisable: boolean;
  sessionMaxAge: number;
  smtpCpu: number;
  smtpEnable: boolean;
  smtpEnabledEvents: string;
  smtpEncryptionType: string;
  smtpHost: string;
  smtpMemory: number;
  smtpPassword: string;
  smtpPort: number;
  smtpTo: string;
  smtpUsername: string;
  subAnnounce: string;
  subCertFile: string;
  subClashEnable: boolean;
  subClashEnableRouting: boolean;
  subClashPath: string;
  subClashRules: string;
  subClashURI: string;
  subDomain: string;
  subEnable: boolean;
  subEnableRouting: boolean;
  subEncrypt: boolean;
  subHideSettings: boolean;
  subIncyEnableRouting: boolean;
  subIncyRoutingRules: string;
  subJsonEnable: boolean;
  subJsonFinalMask: string;
  subJsonMux: string;
  subJsonPath: string;
  subJsonRules: string;
  subJsonURI: string;
  subKeyFile: string;
  subListen: string;
  subPath: string;
  subPort: number;
  subProfileUrl: string;
  subRoutingRules: string;
  subSupportUrl: string;
  subThemeDir: string;
  subTitle: string;
  subURI: string;
  subUpdates: number;
  tgBotAPIServer: string;
  tgBotBackup: boolean;
  tgBotChatId: string;
  tgBotEnable: boolean;
  tgBotProxy: string;
  tgBotToken: string;
  tgCpu: number;
  tgEnabledEvents: string;
  tgLang: string;
  tgMemory: number;
  tgRunTime: string;
  timeLocation: string;
  trafficDiff: number;
  trustedProxyCIDRs: string;
  twoFactorEnable: boolean;
  twoFactorToken: string;
  warpUpdateInterval: number;
  webBasePath: string;
  webCertFile: string;
  webDomain: string;
  webKeyFile: string;
  webListen: string;
  webPort: number;
}

export interface ApiToken {
  createdAt: number;
  enabled: boolean;
  id: number;
  name: string;
  token: string;
}

export interface ApiTokenView {
  createdAt: number;
  enabled: boolean;
  id: number;
  name: string;
  token?: string;
}

export interface Client {
  allowedIPs?: string[];
  auth?: string;
  comment: string;
  created_at?: number;
  email: string;
  enable: boolean;
  expiryTime: number;
  flow?: string;
  group?: string;
  id?: string;
  keepAlive?: number;
  limitIp: number;
  password?: string;
  preSharedKey?: string;
  privateKey?: string;
  publicKey?: string;
  reset: number;
  reverse?: ClientReverse | null;
  security: string;
  subId: string;
  tgId: number;
  totalGB: number;
  updated_at?: number;
}

export interface ClientInbound {
  clientId: number;
  createdAt: number;
  flowOverride: string;
  inboundId: number;
}

export interface ClientRecord {
  allowedIPs: string;
  auth: string;
  comment: string;
  createdAt: number;
  email: string;
  enable: boolean;
  expiryTime: number;
  flow: string;
  group: string;
  id: number;
  keepAlive: number;
  limitIp: number;
  password: string;
  preSharedKey: string;
  privateKey: string;
  publicKey: string;
  reset: number;
  reverse: unknown;
  security: string;
  subId: string;
  tgId: number;
  totalGB: number;
  updatedAt: number;
  uuid: string;
}

export interface ClientReverse {
  tag: string;
}

export interface ClientTraffic {
  down: number;
  email: string;
  enable: boolean;
  expiryTime: number;
  id: number;
  inboundId: number;
  lastOnline: number;
  reset: number;
  subId: string;
  total: number;
  up: number;
  uuid: string;
}

export interface FallbackParentInfo {
  masterId: number;
  path?: string;
}

export interface HistoryOfSeeders {
  id: number;
  seederName: string;
}

export interface Host {
  address: string;
  allowInsecure: boolean;
  alpn: string[];
  createdAt: number;
  echConfigList: string;
  excludeFromSubTypes: string[];
  finalMask: string;
  fingerprint: string;
  hostHeader: string;
  id: number;
  inboundId: number;
  isDisabled: boolean;
  isHidden: boolean;
  keepSniBlank: boolean;
  mihomoIpVersion: string;
  mihomoX25519: boolean;
  muxParams: unknown;
  nodeGuids?: string[];
  overrideSniFromAddress: boolean;
  path: string;
  pinnedPeerCertSha256: string[];
  port: number;
  remark: string;
  security: string;
  serverDescription: string;
  shuffleHost: boolean;
  sni: string;
  sockoptParams: unknown;
  sortOrder: number;
  tags: string[];
  updatedAt: number;
  verifyPeerCertByName: string;
  vlessRoute: string;
}

export interface Inbound {
  clientStats: ClientTraffic[];
  down: number;
  enable: boolean;
  expiryTime: number;
  fallbackParent?: FallbackParentInfo | null;
  id: number;
  lastTrafficResetTime: number;
  listen: string;
  nodeId?: number | null;
  originNodeGuid?: string;
  port: number;
  protocol: Protocol;
  remark: string;
  settings: unknown;
  shareAddr: string;
  shareAddrStrategy: string;
  sniffing: unknown;
  streamSettings: unknown;
  subSortIndex: number;
  tag: string;
  total: number;
  trafficReset: string;
  up: number;
}

export interface InboundClientIps {
  clientEmail: string;
  id: number;
  ips: unknown;
}

export interface InboundFallback {
  alpn: string;
  childId: number;
  dest: string;
  id: number;
  masterId: number;
  name: string;
  path: string;
  sortOrder: number;
  xver: number;
}

export interface InboundOption {
  id: number;
  nodeId?: number | null;
  port: number;
  protocol: string;
  remark: string;
  ssMethod: string;
  tag: string;
  tlsFlowCapable: boolean;
  wgDns?: string;
  wgMtu?: number;
  wgPublicKey?: string;
}

export interface Msg {
  msg: string;
  obj: unknown;
  success: boolean;
}

export interface Node {
  activeCount: number;
  address: string;
  allowPrivateAddress: boolean;
  apiToken: string;
  basePath: string;
  clientCount: number;
  configDirty: boolean;
  configDirtyAt: number;
  cpuPct: number;
  createdAt: number;
  depletedCount: number;
  disabledCount: number;
  enable: boolean;
  guid: string;
  id: number;
  inboundCount: number;
  inboundSyncMode: string;
  inboundTags: string[];
  lastError: string;
  lastHeartbeat: number;
  latencyMs: number;
  memPct: number;
  name: string;
  netDown: number;
  netUp: number;
  onlineCount: number;
  outboundTag: string;
  panelVersion: string;
  parentGuid?: string;
  pinnedCertSha256: string;
  port: number;
  remark: string;
  scheme: string;
  status: string;
  tlsVerifyMode: string;
  transitive?: boolean;
  updatedAt: number;
  uptimeSecs: number;
  xrayError: string;
  xrayState: string;
  xrayVersion: string;
}

export interface OutboundTraffics {
  down: number;
  id: number;
  tag: string;
  total: number;
  up: number;
}

export interface PanelUpdateStatus {
  exitCode: number;
  finishedAt: number;
  runId: string;
  state: string;
}

export interface ProbeResultUI {
  cpuPct: number;
  error: string;
  latencyMs: number;
  memPct: number;
  panelVersion: string;
  status: string;
  uptimeSecs: number;
  xrayError: string;
  xrayState: string;
  xrayVersion: string;
}

export interface RealityScanResult {
  alpn: string;
  certIssuer: string;
  certSubject: string;
  certValid: boolean;
  curveID: string;
  feasible: boolean;
  h2: boolean;
  host: string;
  ip: string;
  latencyMs: number;
  notAfter: string;
  port: number;
  reason: string;
  serverNames: string[];
  target: string;
  tls13: boolean;
  tlsVersion: string;
  x25519: boolean;
}

export interface Setting {
  id: number;
  key: string;
  value: string;
}

export interface User {
  id: number;
  password: string;
  username: string;
}

