import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
import * as google from '@cdktf/provider-google';
interface INodePoolProps {
    name: string;
    minZoneCount?: number;
    maxZoneCount?: number;
    minTotalCount?: number;
    maxTotalCount?: number;
    machineType: string;
    nodeLocations?: string[];
    preemptible?: boolean;
    taints?: google.containerNodePool.ContainerNodePoolNodeConfigTaint[];
}
interface IClusterProps extends cdktf.TerraformMetaArguments {
    project: string;
    masterCidr: string;
    servicesSecondarySubnetName: string;
    clusterSecondarySubnetName: string;
    name: string;
    networkHostProject: string;
    subnetwork: string;
    allowedAccessCidrs: string[];
    defaultNodeLocations?: string[];
    nodePools: INodePoolProps[];
}
declare class Cluster extends Construct {
    readonly serviceAccount: google.serviceAccount.ServiceAccount;
    readonly cluster: google.containerCluster.ContainerCluster;
    constructor(scope: Construct, id: string, props: IClusterProps);
}
export { Cluster, IClusterProps, INodePoolProps };
