import { EKSCluster, Nodegroup, Role } from "../generated/index.js"; export interface EksClusterProps { /** Cluster name. Required: everything downstream addresses the cluster by it. */ name: string; /** Subnet ids for the control plane ENIs — EKS requires at least two AZs. */ subnetIds: string[]; /** Extra security groups for the control plane (EKS always adds its own). */ securityGroupIds?: string[]; /** Kubernetes version, e.g. "1.31". Omitted takes EKS's current default. */ version?: string; /** Node group shape. Omitted provisions no node group (control plane only). */ nodegroup?: { instanceTypes?: string[]; desiredSize?: number; minSize?: number; maxSize?: number; /** Subnets the nodes land in. Default: the cluster's own `subnetIds`. */ subnetIds?: string[]; }; /** * Managed add-ons to install, by name (e.g. "eks-pod-identity-agent" — * without which an AWS::EKS::PodIdentityAssociation delivers no * credentials and the workload it binds crashloops on startup, found on * kubemicrovm-ops' first real deploy). Named by the caller, never guessed; * versions omitted take EKS's default. Up to three (fixed member slots * `addon1..addon3`, keyed by position — the statically-evaluable shape); * an estate needing more declares the rest as bare Addon resources. */ addons?: Array<{ name: string; version?: string; }>; tags?: Array<{ Key: string; Value: string; }>; defaults?: { cluster?: Partial[0]>; nodegroup?: Partial[0]>; clusterRole?: Partial[0]>; nodeRole?: Partial[0]>; }; } export declare const EksCluster: import("@intentius/chant").CompositeDefinition) | undefined; addon2?: (import("@intentius/chant").Declarable & Record) | undefined; addon1?: (import("@intentius/chant").Declarable & Record) | undefined; clusterRole: import("@intentius/chant").Declarable & Record; cluster: import("@intentius/chant").Declarable & Record; } | { addon3?: (import("@intentius/chant").Declarable & Record) | undefined; addon2?: (import("@intentius/chant").Declarable & Record) | undefined; addon1?: (import("@intentius/chant").Declarable & Record) | undefined; clusterRole: import("@intentius/chant").Declarable & Record; cluster: import("@intentius/chant").Declarable & Record; nodeRole: import("@intentius/chant").Declarable & Record; nodegroup: import("@intentius/chant").Declarable & Record; }>; //# sourceMappingURL=eks-cluster.d.ts.map