<?php

if (!defined('ABSPATH')) {
    exit;
}

interface SPP_Proxmox_Client
{
    /**
     * @return array<int, array<string, mixed>>
     */
    public function list_templates(): array;

    /**
     * @param array<string, mixed> $input
     * @return array{vm_id:int}
     */
    public function provision_instance(array $input): array;

    public function start_instance(string $type, int $vm_id): void;

    public function stop_instance(string $type, int $vm_id): void;

    public function delete_instance(string $type, int $vm_id): void;

    public function get_status(string $type, int $vm_id): string;

    /**
     * @return array<int, string>
     */
    public function get_ip_addresses(string $type, int $vm_id): array;
}
