import { type IVpc } from 'aws-cdk-lib/aws-ec2'; import { CpuArchitecture, FargateService, FargateTaskDefinition, OperatingSystemFamily } from 'aws-cdk-lib/aws-ecs'; import * as ecsPatterns from 'aws-cdk-lib/aws-ecs-patterns'; import { SslPolicy } from 'aws-cdk-lib/aws-elasticloadbalancingv2'; import type { MinMaxNumber } from '../types'; import { DotStack } from '../constructs/Stack'; export { CpuArchitecture, OperatingSystemFamily, SslPolicy }; export declare enum ServiceCPUUnits { FOUR_VCPU = 4096, HALF_VCPU = 512, ONE_VCPU = 1024, TWO_VCPU = 2048 } export declare enum ServiceMemoryLimit { FOUR_GB = 4096, HALF_GB = 512, ONE_GB = 1024, TWO_GB = 2048 } export interface AddServiceOptions { architecture?: CpuArchitecture; assignPublicIp?: boolean; baseDir: string; certificateArn: string; command?: string[]; containerRegistry?: string; cpu?: ServiceCPUUnits; cpuScaleAtPercent: MinMaxNumber<10, 90>; defaultVpc?: boolean; desiredInstances?: MinMaxNumber<1, 10>; environmentVariables: Record; maxInstances?: MinMaxNumber<1, 10>; memory?: ServiceMemoryLimit; minInstances?: MinMaxNumber<1, 10>; name?: string; nodeMemorySize?: number; os?: OperatingSystemFamily; port?: number; scope: DotStack; sslPolicy?: SslPolicy; vpc?: IVpc; } export interface AddServiceResult { aggregate: ecsPatterns.ApplicationLoadBalancedFargateService; service: FargateService; task: FargateTaskDefinition; } export declare const addFargateService: (options: AddServiceOptions) => AddServiceResult;