import type { IInstanceType, IInstanceTypeCategory, IInstanceTypesByRegion, IPreferredInstanceType } from '@spinnaker/core'; export interface IAmazonPreferredInstanceType extends IPreferredInstanceType { cpuCreditsPerHour?: number; } export interface IAmazonInstanceTypeCategory extends IInstanceTypeCategory { showCpuCredits?: boolean; descriptionListOverride?: string[]; } export interface IAmazonInstanceType extends IInstanceType { defaultVCpus: number; memoryInGiB: number; hypervisor: string; instanceStorageInfo?: IAmazonInstanceTypeStorageInfo; ebsInfo?: IAmazonInstanceTypeEbsInfo; gpuInfo?: IAmazonInstanceGpuInfo; instanceStorageSupported: boolean; currentGeneration: boolean; bareMetal: boolean; ipv6Supported?: boolean; burstablePerformanceSupported: boolean; supportedArchitectures: string[]; supportedUsageClasses: string[]; supportedRootDeviceTypes: string[]; supportedVirtualizationTypes: string[]; } export interface IAmazonInstanceTypeStorageInfo { storageTypes: string; totalSizeInGB?: number; nvmeSupport?: string; } export interface IAmazonInstanceTypeEbsInfo { ebsOptimizedSupport: string; nvmeSupport?: string; encryptionSupport: string; } export interface IAmazonInstanceGpuInfo { totalGpuMemoryInMiB: number; gpus: IAmazonInstanceGpuDeviceInfo[]; } export interface IAmazonInstanceGpuDeviceInfo { name: string; manufacturer: string; count: number; gpuSizeInMiB: number; } export interface IAmazonInstanceTypesByRegion extends IInstanceTypesByRegion { [region: string]: IAmazonInstanceType[]; } export declare class AwsInstanceTypeService { private instanceClassOrder; private families; getCategories(): Promise; getAllTypesByRegion(): Promise; private sortTypesByFamilyAndSize; getAvailableTypesForRegions(availableInstanceTypes: IAmazonInstanceTypesByRegion, selectedRegions: string[]): IAmazonInstanceType[]; filterInstanceTypes(instanceTypes: IAmazonInstanceType[], virtualizationType: string, vpcConfigured: boolean, architecture: string): IAmazonInstanceType[]; isEbsOptimized(instanceType: string): boolean; isBurstingSupportedForAllTypes(instanceTypes: string[]): boolean; isBurstingSupported(instanceType: string): boolean; getInstanceTypesInCategory(instanceTypesToFilter: string[], category: string): string[]; }