/// import { Injector } from 'reduct'; import { PodSpec } from '../schemas/PodSpec'; import { IncomingMessage } from 'http'; export interface HyperPodInfoResponse { podID: string; kind: string; apiVersion: string; vm: string; createdAt: number; spec: { containers: { args: string[]; containerID: string; env: { env: string; value: string; }[]; image: string; imageID: string; name: string; volumeMounts: { mountPath: string; name: string; }; workingDir: string; }[]; memory: number; vcpu: number; volumes: { driver: string; name: string; source: string; }[]; }; status: { phase: string; hostIP: string; podIP: string[]; containerStatus: { containerID: string; name: string; phase: string; running: { startedAt: string; }; terminated: object; waiting: object; }[]; }; podName: string; } export default class HyperClient { private config; constructor(deps: Injector); getPodInfo(hash: string): Promise; getPodIP(hash: string): Promise; getPodList(): Promise>; pullImages(podSpec: PodSpec): Promise; pullImage(image: string): Promise; createPod(podSpec: PodSpec): Promise; startPod(podId: string): Promise; runPod(podSpec: PodSpec): Promise; deletePod(podId: string): Promise; getLog(containerId: string, follow?: boolean): Promise; }