import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
/**
 * The provider type for the consul package. By default, resources use package-wide configuration
 * settings, however an explicit `Provider` instance may be created and passed during resource
 * construction to achieve fine-grained programmatic control over provider settings. See the
 * [documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.
 */
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;
    /**
     * The HTTP(S) API address of the agent to use. Defaults to "127.0.0.1:8500".
     */
    readonly address: pulumi.Output<string | undefined>;
    /**
     * A path to a PEM-encoded certificate authority used to verify the remote agent's certificate.
     */
    readonly caFile: pulumi.Output<string | undefined>;
    /**
     * A path to a directory of PEM-encoded certificate authority files to use to check the authenticity of client and server connections. Can also be specified with the `CONSUL_CAPATH` environment variable.
     */
    readonly caPath: pulumi.Output<string | undefined>;
    /**
     * PEM-encoded certificate authority used to verify the remote agent's certificate.
     */
    readonly caPem: pulumi.Output<string | undefined>;
    /**
     * A path to a PEM-encoded certificate provided to the remote agent; requires use of `keyFile` or `keyPem`.
     */
    readonly certFile: pulumi.Output<string | undefined>;
    /**
     * PEM-encoded certificate provided to the remote agent; requires use of `keyFile` or `keyPem`.
     */
    readonly certPem: pulumi.Output<string | undefined>;
    /**
     * The datacenter to use. Defaults to that of the agent.
     */
    readonly datacenter: pulumi.Output<string | undefined>;
    /**
     * HTTP Basic Authentication credentials to be used when communicating with Consul, in the format of either `user` or `user:pass`. This may also be specified using the `CONSUL_HTTP_AUTH` environment variable.
     */
    readonly httpAuth: pulumi.Output<string | undefined>;
    /**
     * A path to a PEM-encoded private key, required if `certFile` or `certPem` is specified.
     */
    readonly keyFile: pulumi.Output<string | undefined>;
    /**
     * PEM-encoded private key, required if `certFile` or `certPem` is specified.
     */
    readonly keyPem: pulumi.Output<string | undefined>;
    readonly namespace: pulumi.Output<string | undefined>;
    /**
     * The URL scheme of the agent to use ("http" or "https"). Defaults to "http".
     */
    readonly scheme: pulumi.Output<string | undefined>;
    /**
     * The ACL token to use by default when making requests to the agent. Can also be specified with `CONSUL_HTTP_TOKEN` or `CONSUL_TOKEN` as an environment variable.
     */
    readonly token: pulumi.Output<string | undefined>;
    /**
     * 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);
    /**
     * This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.
     */
    terraformConfig(): pulumi.Output<Provider.TerraformConfigResult>;
}
/**
 * The set of arguments for constructing a Provider resource.
 */
export interface ProviderArgs {
    /**
     * The HTTP(S) API address of the agent to use. Defaults to "127.0.0.1:8500".
     */
    address?: pulumi.Input<string>;
    /**
     * Authenticates to Consul using a JWT authentication method.
     */
    authJwt?: pulumi.Input<inputs.ProviderAuthJwt>;
    /**
     * Login to Consul using the AWS IAM auth method
     */
    authLoginAws?: pulumi.Input<inputs.ProviderAuthLoginAws>;
    /**
     * A path to a PEM-encoded certificate authority used to verify the remote agent's certificate.
     */
    caFile?: pulumi.Input<string>;
    /**
     * A path to a directory of PEM-encoded certificate authority files to use to check the authenticity of client and server connections. Can also be specified with the `CONSUL_CAPATH` environment variable.
     */
    caPath?: pulumi.Input<string>;
    /**
     * PEM-encoded certificate authority used to verify the remote agent's certificate.
     */
    caPem?: pulumi.Input<string>;
    /**
     * A path to a PEM-encoded certificate provided to the remote agent; requires use of `keyFile` or `keyPem`.
     */
    certFile?: pulumi.Input<string>;
    /**
     * PEM-encoded certificate provided to the remote agent; requires use of `keyFile` or `keyPem`.
     */
    certPem?: pulumi.Input<string>;
    /**
     * The datacenter to use. Defaults to that of the agent.
     */
    datacenter?: pulumi.Input<string>;
    /**
     * A configuration block, described below, that provides additional headers to be sent along with all requests to the Consul server. This block can be specified multiple times.
     */
    headers?: pulumi.Input<pulumi.Input<inputs.ProviderHeader>[]>;
    /**
     * HTTP Basic Authentication credentials to be used when communicating with Consul, in the format of either `user` or `user:pass`. This may also be specified using the `CONSUL_HTTP_AUTH` environment variable.
     */
    httpAuth?: pulumi.Input<string>;
    /**
     * Boolean value to disable SSL certificate verification; setting this value to true is not recommended for production use. Only use this with scheme set to "https".
     */
    insecureHttps?: pulumi.Input<boolean>;
    /**
     * A path to a PEM-encoded private key, required if `certFile` or `certPem` is specified.
     */
    keyFile?: pulumi.Input<string>;
    /**
     * PEM-encoded private key, required if `certFile` or `certPem` is specified.
     */
    keyPem?: pulumi.Input<string>;
    namespace?: pulumi.Input<string>;
    /**
     * The URL scheme of the agent to use ("http" or "https"). Defaults to "http".
     */
    scheme?: pulumi.Input<string>;
    /**
     * The ACL token to use by default when making requests to the agent. Can also be specified with `CONSUL_HTTP_TOKEN` or `CONSUL_TOKEN` as an environment variable.
     */
    token?: pulumi.Input<string>;
}
export declare namespace Provider {
    /**
     * The results of the Provider.terraformConfig method.
     */
    interface TerraformConfigResult {
        readonly result: {
            [key: string]: any;
        };
    }
}
