import { Result } from "neverthrow"; import { ModuleContext, ModuleID } from "../modules/module_context"; import type { ContainerConfig, FilesArtifactUUID } from "../services/container_config"; import type { ServiceID } from "../services/service"; import { ServiceContext } from "../services/service_context"; import type { PartitionConnection } from "./partition_connection"; import { TemplateAndData } from "./template_and_data"; export declare type EnclaveID = string; export declare type PartitionID = string; export declare class EnclaveContext { private readonly backend; private readonly pathJoiner; private readonly genericTgzArchiver; private constructor(); static newGrpcWebEnclaveContext(ipAddress: string, apiContainerGrpcProxyPortNum: number, enclaveId: string): Promise>; static newGrpcNodeEnclaveContext(ipAddress: string, apiContainerGrpcPortNum: number, enclaveId: string): Promise>; getEnclaveId(): EnclaveID; loadModule(moduleId: ModuleID, image: string, serializedParams: string): Promise>; unloadModule(moduleId: ModuleID): Promise>; getModuleContext(moduleId: ModuleID): Promise>; addService(serviceId: ServiceID, containerConfig: ContainerConfig): Promise>; addServices(containerConfigs: Map): Promise, Map], Error>>; addServiceToPartition(serviceId: ServiceID, partitionId: PartitionID, containerConfig: ContainerConfig): Promise>; addServicesToPartition(containerConfigs: Map, partitionID: PartitionID): Promise, Map], Error>>; getServiceContext(serviceId: ServiceID): Promise>; removeService(serviceId: ServiceID): Promise>; repartitionNetwork(partitionServices: Map>, partitionConnections: Map>, defaultConnection: PartitionConnection): Promise>; waitForHttpGetEndpointAvailability(serviceId: ServiceID, port: number, path: string, initialDelayMilliseconds: number, retries: number, retriesDelayMilliseconds: number, bodyText: string): Promise>; waitForHttpPostEndpointAvailability(serviceId: ServiceID, port: number, path: string, requestBody: string, initialDelayMilliseconds: number, retries: number, retriesDelayMilliseconds: number, bodyText: string): Promise>; getServices(): Promise, Error>>; getModules(): Promise, Error>>; uploadFiles(pathToArchive: string): Promise>; storeWebFiles(url: string): Promise>; storeServiceFiles(serviceId: ServiceID, absoluteFilepathOnServiceContainer: string): Promise>; pauseService(serviceId: string): Promise>; unpauseService(serviceId: string): Promise>; renderTemplates(templateAndDataByDestinationRelFilepath: Map): Promise>; private static convertApiPortsToServiceContextPorts; }