import * as plugins from '../plugins.js';

import { type IDockerRegistryInfo } from './docker.js';

export interface IServerMetrics {
  serverId: string;
  cpuUsageInPercent: number;
  memoryUsageinMB: number;
  memoryAvailableInMB: number;
  containerCount: number;
  containerMetrics: Array<{
    containerId: string;
    containerName: string;
    cpuUsageInPercent: number;
    memoryUsageInMB: number;
  }>;
}

export interface IServer {
  id: string;
  data: {
    type: 'baremetal' | 'hetzner';

    assignedClusterId: string;

    /**
     * a list of debian packages to be installed
     */
    requiredDebianPackages: string[];

    /**
     * a list of SSH keys to deploy
     */
    sshKeys: plugins.tsclass.network.ISshKey[];
  };
}
