import { LoadBalancer, TargetGroup, Listener } from "../generated/index.js"; export interface NlbServiceProps { vpcId: string; subnetIds: string[]; listenerPort?: number; /** Port the target group forwards traffic to. Defaults to `listenerPort`. */ targetPort?: number; /** * Listener + target group protocol. `TLS` terminates TLS at the NLB and * requires `certificateArn`; the other protocols pass traffic through * unmodified, which is the common case for a Network Load Balancer. */ protocol?: "TCP" | "UDP" | "TLS" | "TCP_UDP"; scheme?: "internet-facing" | "internal"; /** * Target group target type. `ip` (the default) covers Fargate awsvpc tasks * and any routable IP; use `instance` to register EC2 instance IDs directly, * or `alb` to chain an NLB in front of an existing Application Load Balancer. */ targetType?: "instance" | "ip" | "alb"; /** * Static targets to register at creation time (instance IDs, IPs, or an ALB * ARN depending on `targetType`). Omit when targets self-register instead — * an ECS service, for instance, that references `targetGroup.TargetGroupArn`. */ targets?: Array<{ id: string; port?: number; availabilityZone?: string; }>; /** ACM certificate ARN. Required when `protocol` is `TLS`. */ certificateArn?: string; healthCheckProtocol?: "TCP" | "HTTP" | "HTTPS"; healthCheckPort?: string; /** Only meaningful when `healthCheckProtocol` is `HTTP` or `HTTPS`. */ healthCheckPath?: string; defaults?: { nlb?: Partial[0]>; targetGroup?: Partial[0]>; listener?: Partial[0]>; }; } export declare const NlbService: import("@intentius/chant").CompositeDefinition; targetGroup: import("@intentius/chant").Declarable & Record; listener: import("@intentius/chant").Declarable & Record; }>; //# sourceMappingURL=nlb-service.d.ts.map