export type AvailableIpResponse = {
  vpnIp: string;
};

export type UsedIpsResponse = {
  usedIps: string[];
  count: number;
};

export type PeerRegistrationRequest = {
  vpnIp: string;
  publicKey: string;
};

export type PeerRegistrationResponse =
  PeerRegistrationRequest & {
    applied: boolean;
  };

export type VpsHealth = {
  wireGuardInterface: string;
  wireGuardRunning: boolean;
  wireGuardPeerCount: number;
  wireGuardConfigExists: boolean;
  udp2rawService: string;
  udp2rawActive: boolean;
  latestWireGuardBackup: string;
  systemUptime: string;
  diskUsagePercent: number;
  memoryUsagePercent: number;
  loadAverage: string;
  publicIp: string;
  backend: boolean;
  ipPoolUsed: number;
  ipPoolTotal: number;
  updatedAt: string;
};

export type AppSettings = {
  backendUrl: string;
  apiKey: string;
};

export type NetworkTrafficResponse = {
  interface: string;
  sampleSeconds: number;
  rxBytesPerSecond: number;
  txBytesPerSecond: number;
  downloadMbps: number;
  uploadMbps: number;
  updatedAt: string;
};