import * as core from "@terrascript/core";
export interface TaintArgs extends core.SchemaArgs {
    effect: string | core.StringOut;
    key: string | core.StringOut;
    value?: string | core.StringOut;
}
export declare class Taint extends core.Schema<TaintArgs> {
    effect: string | core.StringOut;
    key: string | core.StringOut;
    value?: string | core.StringOut;
}
export interface AutoscalingGroupsArgs extends core.SchemaArgs {
    name: string | core.StringOut;
}
export declare class AutoscalingGroups extends core.Schema<AutoscalingGroupsArgs> {
    name: string | core.StringOut;
}
export interface ResourcesArgs extends core.SchemaArgs {
    autoscalingGroups: core.Array<AutoscalingGroups> | core.ArrayOut<AutoscalingGroups>;
    remoteAccessSecurityGroupId: string | core.StringOut;
}
export declare class Resources extends core.Schema<ResourcesArgs> {
    autoscalingGroups: core.Array<AutoscalingGroups> | core.ArrayOut<AutoscalingGroups>;
    remoteAccessSecurityGroupId: string | core.StringOut;
}
export interface UpdateConfigArgs extends core.SchemaArgs {
    maxUnavailable?: number | core.NumberOut;
    maxUnavailablePercentage?: number | core.NumberOut;
}
export declare class UpdateConfig extends core.Schema<UpdateConfigArgs> {
    maxUnavailable?: number | core.NumberOut;
    maxUnavailablePercentage?: number | core.NumberOut;
}
export interface ScalingConfigArgs extends core.SchemaArgs {
    desiredSize: number | core.NumberOut;
    maxSize: number | core.NumberOut;
    minSize: number | core.NumberOut;
}
export declare class ScalingConfig extends core.Schema<ScalingConfigArgs> {
    desiredSize: number | core.NumberOut;
    maxSize: number | core.NumberOut;
    minSize: number | core.NumberOut;
}
export interface LaunchTemplateArgs extends core.SchemaArgs {
    id?: string | core.StringOut;
    name?: string | core.StringOut;
    version: string | core.StringOut;
}
export declare class LaunchTemplate extends core.Schema<LaunchTemplateArgs> {
    id?: string | core.StringOut;
    name?: string | core.StringOut;
    version: string | core.StringOut;
}
export interface RemoteAccessArgs extends core.SchemaArgs {
    ec2SshKey?: string | core.StringOut;
    sourceSecurityGroupIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class RemoteAccess extends core.Schema<RemoteAccessArgs> {
    ec2SshKey?: string | core.StringOut;
    sourceSecurityGroupIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface NodeGroupArgs extends core.ResourceArgs {
    amiType?: string | core.StringOut;
    capacityType?: string | core.StringOut;
    clusterName: string | core.StringOut;
    diskSize?: number | core.NumberOut;
    forceUpdateVersion?: boolean | core.BooleanOut;
    instanceTypes?: core.Array<string> | core.ArrayOut<core.StringOut>;
    labels?: core.Map<string, string> | core.MapOut<core.StringOut>;
    launchTemplate?: LaunchTemplate;
    nodeGroupName?: string | core.StringOut;
    nodeGroupNamePrefix?: string | core.StringOut;
    nodeRoleArn: string | core.StringOut;
    releaseVersion?: string | core.StringOut;
    remoteAccess?: RemoteAccess;
    scalingConfig: ScalingConfig;
    subnetIds: core.Array<string> | core.ArrayOut<core.StringOut>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    taint?: core.Array<Taint> | core.ArrayOut<Taint>;
    updateConfig?: UpdateConfig;
    version?: string | core.StringOut;
}
export declare class NodeGroup extends core.Resource<NodeGroupArgs> {
    amiType?: string | core.StringOut;
    arn: string | core.StringOut;
    capacityType?: string | core.StringOut;
    clusterName: string | core.StringOut;
    diskSize?: number | core.NumberOut;
    forceUpdateVersion?: boolean | core.BooleanOut;
    id: string | core.StringOut;
    instanceTypes?: core.Array<string> | core.ArrayOut<core.StringOut>;
    labels?: core.Map<string, string> | core.MapOut<core.StringOut>;
    launchTemplate?: LaunchTemplate;
    nodeGroupName?: string | core.StringOut;
    nodeGroupNamePrefix?: string | core.StringOut;
    nodeRoleArn: string | core.StringOut;
    releaseVersion?: string | core.StringOut;
    remoteAccess?: RemoteAccess;
    resources: core.Array<Resources> | core.ArrayOut<Resources>;
    scalingConfig: ScalingConfig;
    status: string | core.StringOut;
    subnetIds: core.Array<string> | core.ArrayOut<core.StringOut>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    taint?: core.Array<Taint> | core.ArrayOut<Taint>;
    updateConfig?: UpdateConfig;
    version?: string | core.StringOut;
    constructor(name: string, args?: NodeGroupArgs);
    getNamespace(): string;
}
//# sourceMappingURL=node_group.d.ts.map