import { z } from "zod";
import { type CloudProvider } from "./base.js";
import type { Region, ServerSize, ServerConfig, ServerResult, SnapshotInfo, ServerMode } from "../types/index.js";
export declare const VultrInstanceSchema: z.ZodObject<{
    instance: z.ZodObject<{
        id: z.ZodString;
        main_ip: z.ZodOptional<z.ZodString>;
        power_status: z.ZodString;
        server_status: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    }, z.core.$strip>;
}, z.core.$strip>;
export declare class VultrProvider implements CloudProvider {
    name: string;
    displayName: string;
    private apiToken;
    private baseUrl;
    constructor(apiToken: string);
    validateToken(token: string): Promise<boolean>;
    uploadSshKey(name: string, publicKey: string): Promise<string>;
    createServer(config: ServerConfig): Promise<ServerResult>;
    getServerDetails(serverId: string): Promise<ServerResult>;
    getServerStatus(serverId: string): Promise<string>;
    destroyServer(serverId: string): Promise<void>;
    rebootServer(serverId: string): Promise<void>;
    getRegions(): Region[];
    getServerSizes(): ServerSize[];
    getAvailableLocations(): Promise<Region[]>;
    getAvailableServerTypes(location: string, mode?: ServerMode): Promise<ServerSize[]>;
    createSnapshot(serverId: string, name: string): Promise<SnapshotInfo>;
    listSnapshots(serverId: string): Promise<SnapshotInfo[]>;
    deleteSnapshot(snapshotId: string): Promise<void>;
    restoreSnapshot(serverId: string, snapshotId: string): Promise<void>;
    getSnapshotCostEstimate(serverId: string): Promise<string>;
    findServerByIp(ip: string): Promise<string | null>;
}
//# sourceMappingURL=vultr.d.ts.map