import { Endpoint_Kind } from "../protobuf/akash/base/v1beta3/endpoint"; export type v2Manifest = v2Group[]; export type v3Manifest = v3Group[]; export declare class VersionError extends Error { constructor(msg?: string); } export type v3Group = { name: string; services: v3ManifestService[]; }; export type v2Group = { Name: string; Services: v2ManifestService[]; }; export type v2ManifestService = { Name: string; Image: string; Command: string[] | null; Args: string[] | null; Env: string[] | null; Resources: ResourceUnits; Count: number; Expose: v2ServiceExpose[]; params?: v2ManifestServiceParams; }; export type v3ManifestService = { name: string; image: string; command: string[] | null; args: string[] | null; env: string[] | null; resources: ResourceUnits; count: number; expose: v3ServiceExpose[]; params: v3ManifestServiceParams | null; }; export type v2ServiceExposeHttpOptions = { MaxBodySize: number; ReadTimeout: number; SendTimeout: number; NextTries: number; NextTimeout: number; NextCases: string[]; }; export type v3ServiceExposeHttpOptions = { maxBodySize: number; readTimeout: number; sendTimeout: number; nextTries: number; nextTimeout: number; nextCases: string[]; }; export type ResourceUnits = {}; export type v2ServiceExpose = { Port: number; ExternalPort: number; Proto: string; Service: any; Global: boolean; Hosts: any; HTTPOptions: v2ServiceExposeHttpOptions; IP: string; EndpointSequenceNumber: number; }; export type v3ServiceExpose = { port: number; externalPort: number; proto: string; service: any; global: boolean; hosts: any; httpOptions: v3ServiceExposeHttpOptions; ip: string; endpointSequenceNumber: number; }; export type v2ManifestServiceParams = { Storage: v2ServiceStorageParams[]; }; export type v3ManifestServiceParams = { storage: v2ServiceStorageParams[]; }; export type v2Sdl = { services: Record; profiles: v2Profiles; deployment: Record; endpoints: Record; }; export type v3Sdl = { services: Record; profiles: v3Profiles; deployment: Record; endpoints: Record; }; export type v2Endpoint = { kind: string; }; export type v2ExposeTo = { service?: string; global?: boolean; http_options: v2HTTPOptions; ip: string; }; export type v2HTTPOptions = { max_body_size: number; read_timeout: number; send_timeout: number; next_tries: number; next_timeout: number; next_cases: string[]; }; export type v2Accept = { items?: string[]; }; export type v2Expose = { port: number; as: number; proto?: string; to?: v2ExposeTo[]; accept: v2Accept; http_options: v2HTTPOptions; }; export type v2Dependency = { service: string; }; export type v2ServiceStorageParams = { name: string; mount: string; readOnly: boolean; }; export type v2ServiceParams = { storage?: Record; }; export type v2Service = { image: string; command: string[] | null; args: string[] | null; env: string[] | null; expose: v2Expose[]; dependencies?: v2Dependency[]; params?: v2ServiceParams; }; export type v2ServiceDeployment = { profile: string; count: number; }; export type v2Deployment = Record; export type v2CPUAttributes = Record[]; export type v2ResourceCPU = { units: number | string; attributes?: v2CPUAttributes; }; export type v2ResourceMemory = { size: string; attributes?: Record; }; export type v3GPUAttributes = { vendor: { [vendor: string]: Array<{ model: string; }>; }; }; export type v3ResourceGPU = { units: number | string; attributes?: v3GPUAttributes; }; export type v2StorageAttributes = Record; export type v2ResourceStorage = { name: string; size: string; attributes: v2StorageAttributes; }; export type v2ResourceStorageArray = v2ResourceStorage[]; export type v2ComputeResources = { cpu: v2ResourceCPU; memory: v2ResourceMemory; storage: v2ResourceStorageArray | v2ResourceStorage; }; export type v3ComputeResources = { cpu: v2ResourceCPU; memory: v2ResourceMemory; storage: v2ResourceStorageArray; gpu: v3ResourceGPU; id: number; }; export type v2ProfileCompute = { resources: v2ComputeResources; }; export type v3ProfileCompute = { resources: v3ComputeResources; }; export type v2PlacementAttributes = Attributes; export type v2Coin = { denom: string; value: number; amount: number; }; export type v2PlacementPricing = Record; export type SignedBy = { allOf: string[]; anyOf: string[]; }; export type v2ProfilePlacement = { attributes: v2PlacementAttributes; signedBy: SignedBy; pricing: v2PlacementPricing; }; export type v2Profiles = { compute: Record; placement: Record; }; export type v3Profiles = { compute: Record; placement: Record; }; export type Attribute = { key: string; value: string; }; export type V3Coin = { denom: string; amount: string; }; export type v3GroupResourceCPU = { units: { val: Uint8Array; }; attributes?: Attribute[]; }; export type v3GroupResourceMemory = { quantity: { val: Uint8Array; }; attributes?: Attribute[]; }; export type v3GroupResourceStorage = { name: string; quantity: { val: Uint8Array; }; attributes: Attribute[]; }; export type v3GroupResourceStorageArray = v3GroupResourceStorage[]; export type v3GroupResourceGPU = { units: { val: Uint8Array; }; attributes?: Attribute[]; }; export type v3GroupComputeResources = { cpu: v3GroupResourceCPU; memory: v3GroupResourceMemory; storage: v3GroupResourceStorageArray; gpu: v3GroupResourceGPU; id: number; }; export type v3DeploymentGroup = { name: string; resources: Array<{ resource: v3GroupComputeResources; price: V3Coin; count: number; endpoints: Array<{ kind: Endpoint_Kind; sequence_number: number; }>; }>; requirements: { attributes: Array; signedBy: { allOf: string[]; anyOf: string[]; }; }; }; export type Attributes = Attribute[];