import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
/**
 * The provider type for the kubernetes package.
 */
export declare class Provider extends pulumi.ProviderResource {
    /**
     * Returns true if the given object is an instance of Provider.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Provider;
    /**
     * Create a Provider resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args?: ProviderArgs, opts?: pulumi.ResourceOptions);
}
/**
 * The set of arguments for constructing a Provider resource.
 */
export interface ProviderArgs {
    /**
     * If present, the name of the kubeconfig cluster to use.
     */
    cluster?: pulumi.Input<string>;
    /**
     * If present, this value will control the provider's replacement behavior. In particular, the provider will _only_ be replaced when `clusterIdentifier` changes; all other changes to provider configuration will be treated as updates.
     *
     * Kubernetes does not yet offer an API for cluster identification, so Pulumi uses heuristics to decide when a provider resource should be replaced or updated. These heuristics can sometimes lead to destructive replace operations when an update would be more appropriate, or vice versa.
     *
     * Use `clusterIdentifier` for more fine-grained control of the provider resource's lifecycle.
     */
    clusterIdentifier?: pulumi.Input<string>;
    /**
     * If present, the name of the kubeconfig context to use.
     */
    context?: pulumi.Input<string>;
    /**
     * If present and set to true, the provider will delete resources associated with an unreachable Kubernetes cluster from Pulumi state
     */
    deleteUnreachable?: pulumi.Input<boolean>;
    /**
     * BETA FEATURE - If present and set to true, allow ConfigMaps to be mutated.
     * This feature is in developer preview, and is disabled by default.
     *
     * This config can be specified in the following ways using this precedence:
     * 1. This `enableConfigMapMutable` parameter.
     * 2. The `PULUMI_K8S_ENABLE_CONFIGMAP_MUTABLE` environment variable.
     */
    enableConfigMapMutable?: pulumi.Input<boolean>;
    /**
     * BETA FEATURE - If present and set to true, allow Secrets to be mutated.
     * This feature is in developer preview, and is disabled by default.
     *
     * This config can be specified in the following ways using this precedence:
     * 1. This `enableSecretMutable` parameter.
     * 2. The `PULUMI_K8S_ENABLE_SECRET_MUTABLE` environment variable.
     */
    enableSecretMutable?: pulumi.Input<boolean>;
    /**
     * If present and set to false, disable Server-Side Apply mode.
     * See https://github.com/pulumi/pulumi-kubernetes/issues/2011 for additional details.
     */
    enableServerSideApply?: pulumi.Input<boolean>;
    /**
     * Options to configure the Helm Release resource.
     */
    helmReleaseSettings?: pulumi.Input<inputs.HelmReleaseSettings>;
    /**
     * Options for tuning the Kubernetes client used by a Provider.
     */
    kubeClientSettings?: pulumi.Input<inputs.KubeClientSettings>;
    /**
     * The contents of a kubeconfig file or the path to a kubeconfig file.
     */
    kubeconfig?: pulumi.Input<string>;
    /**
     * If present, the default namespace to use. This flag is ignored for cluster-scoped resources.
     *
     * A namespace can be specified in multiple places, and the precedence is as follows:
     * 1. `.metadata.namespace` set on the resource.
     * 2. This `namespace` parameter.
     * 3. `namespace` set for the active context in the kubeconfig.
     */
    namespace?: pulumi.Input<string>;
    /**
     * BETA FEATURE - If present, render resource manifests to this directory. In this mode, resources will not
     * be created on a Kubernetes cluster, but the rendered manifests will be kept in sync with changes
     * to the Pulumi program. This feature is in developer preview, and is disabled by default.
     *
     * Note that some computed Outputs such as status fields will not be populated
     * since the resources are not created on a Kubernetes cluster. These Output values will remain undefined,
     * and may result in an error if they are referenced by other resources. Also note that any secret values
     * used in these resources will be rendered in plaintext to the resulting YAML.
     */
    renderYamlToDirectory?: pulumi.Input<string>;
    /**
     * If present and set to true, the provider will skip resources update associated with an unreachable Kubernetes cluster from Pulumi state
     */
    skipUpdateUnreachable?: pulumi.Input<boolean>;
    /**
     * If present and set to true, suppress apiVersion deprecation warnings from the CLI.
     */
    suppressDeprecationWarnings?: pulumi.Input<boolean>;
    /**
     * If present and set to true, suppress unsupported Helm hook warnings from the CLI.
     */
    suppressHelmHookWarnings?: pulumi.Input<boolean>;
}
