import * as core from "@terrascript/core";
export interface ProviderArgs extends core.SchemaArgs {
    keyArn: string | core.StringOut;
}
export declare class Provider extends core.Schema<ProviderArgs> {
    keyArn: string | core.StringOut;
}
export interface EncryptionConfigArgs extends core.SchemaArgs {
    provider: Provider;
    resources: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class EncryptionConfig extends core.Schema<EncryptionConfigArgs> {
    provider: Provider;
    resources: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface OidcArgs extends core.SchemaArgs {
    issuer: string | core.StringOut;
}
export declare class Oidc extends core.Schema<OidcArgs> {
    issuer: string | core.StringOut;
}
export interface IdentityArgs extends core.SchemaArgs {
    oidc: core.Array<Oidc> | core.ArrayOut<Oidc>;
}
export declare class Identity extends core.Schema<IdentityArgs> {
    oidc: core.Array<Oidc> | core.ArrayOut<Oidc>;
}
export interface KubernetesNetworkConfigArgs extends core.SchemaArgs {
    ipFamily?: string | core.StringOut;
    serviceIpv4Cidr?: string | core.StringOut;
}
export declare class KubernetesNetworkConfig extends core.Schema<KubernetesNetworkConfigArgs> {
    ipFamily?: string | core.StringOut;
    serviceIpv4Cidr?: string | core.StringOut;
}
export interface CertificateAuthorityArgs extends core.SchemaArgs {
    data: string | core.StringOut;
}
export declare class CertificateAuthority extends core.Schema<CertificateAuthorityArgs> {
    data: string | core.StringOut;
}
export interface VpcConfigArgs extends core.SchemaArgs {
    clusterSecurityGroupId: string | core.StringOut;
    endpointPrivateAccess?: boolean | core.BooleanOut;
    endpointPublicAccess?: boolean | core.BooleanOut;
    publicAccessCidrs?: core.Array<string> | core.ArrayOut<core.StringOut>;
    securityGroupIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    subnetIds: core.Array<string> | core.ArrayOut<core.StringOut>;
    vpcId: string | core.StringOut;
}
export declare class VpcConfig extends core.Schema<VpcConfigArgs> {
    clusterSecurityGroupId: string | core.StringOut;
    endpointPrivateAccess?: boolean | core.BooleanOut;
    endpointPublicAccess?: boolean | core.BooleanOut;
    publicAccessCidrs?: core.Array<string> | core.ArrayOut<core.StringOut>;
    securityGroupIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    subnetIds: core.Array<string> | core.ArrayOut<core.StringOut>;
    vpcId: string | core.StringOut;
}
export interface ClusterArgs extends core.ResourceArgs {
    enabledClusterLogTypes?: core.Array<string> | core.ArrayOut<core.StringOut>;
    encryptionConfig?: EncryptionConfig;
    kubernetesNetworkConfig?: KubernetesNetworkConfig;
    name: string | core.StringOut;
    roleArn: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    version?: string | core.StringOut;
    vpcConfig: VpcConfig;
}
export declare class Cluster extends core.Resource<ClusterArgs> {
    arn: string | core.StringOut;
    certificateAuthority: core.Array<CertificateAuthority> | core.ArrayOut<CertificateAuthority>;
    createdAt: string | core.StringOut;
    enabledClusterLogTypes?: core.Array<string> | core.ArrayOut<core.StringOut>;
    encryptionConfig?: EncryptionConfig;
    endpoint: string | core.StringOut;
    id: string | core.StringOut;
    identity: core.Array<Identity> | core.ArrayOut<Identity>;
    kubernetesNetworkConfig?: KubernetesNetworkConfig;
    name: string | core.StringOut;
    platformVersion: string | core.StringOut;
    roleArn: string | core.StringOut;
    status: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    version?: string | core.StringOut;
    vpcConfig: VpcConfig;
    constructor(name: string, args?: ClusterArgs);
    getNamespace(): string;
}
//# sourceMappingURL=cluster.d.ts.map