import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
 * The `consul.Keys` datasource reads values from the Consul key/value store. This is a powerful way to dynamically set values in templates.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 * import * as consul from "@pulumi/consul";
 *
 * const app = consul.getKeys({
 *     datacenter: "nyc1",
 *     keys: [{
 *         name: "ami",
 *         path: "service/app/launch_ami",
 *         "default": "ami-1234",
 *     }],
 * });
 * // Start our instance with the dynamic ami value
 * const appInstance = new aws.index.Instance("app", {ami: app["var"]?.ami});
 * ```
 */
export declare function getKeys(args?: GetKeysArgs, opts?: pulumi.InvokeOptions): Promise<GetKeysResult>;
/**
 * A collection of arguments for invoking getKeys.
 */
export interface GetKeysArgs {
    /**
     * The datacenter to use. This overrides the agent's default datacenter and the datacenter in the provider setup.
     */
    datacenter?: string;
    /**
     * Whether to return an error when a key is absent from the KV store and no default is configured. This defaults to `false`.
     */
    errorOnMissingKeys?: boolean;
    /**
     * Specifies a key in Consul to be read. Supported values documented below. Multiple blocks supported.
     */
    keys?: inputs.GetKeysKey[];
    /**
     * The namespace to lookup the keys.
     */
    namespace?: string;
    /**
     * The partition to lookup the keys.
     */
    partition?: string;
    /**
     * The ACL token to use. This overrides the token that the agent provides by default.
     *
     * @deprecated The token argument has been deprecated and will be removed in a future release.
Please use the token argument in the provider configuration
     */
    token?: string;
}
/**
 * A collection of values returned by getKeys.
 */
export interface GetKeysResult {
    /**
     * The datacenter to use. This overrides the agent's default datacenter and the datacenter in the provider setup.
     */
    readonly datacenter: string;
    /**
     * Whether to return an error when a key is absent from the KV store and no default is configured. This defaults to `false`.
     */
    readonly errorOnMissingKeys?: boolean;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * Specifies a key in Consul to be read. Supported values documented below. Multiple blocks supported.
     */
    readonly keys?: outputs.GetKeysKey[];
    /**
     * The namespace to lookup the keys.
     */
    readonly namespace?: string;
    /**
     * The partition to lookup the keys.
     */
    readonly partition?: string;
    /**
     * The ACL token to use. This overrides the token that the agent provides by default.
     *
     * @deprecated The token argument has been deprecated and will be removed in a future release.
Please use the token argument in the provider configuration
     */
    readonly token?: string;
    /**
     * For each name given, the corresponding attribute has the value of the key.
     */
    readonly var: {
        [key: string]: string;
    };
}
/**
 * The `consul.Keys` datasource reads values from the Consul key/value store. This is a powerful way to dynamically set values in templates.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 * import * as consul from "@pulumi/consul";
 *
 * const app = consul.getKeys({
 *     datacenter: "nyc1",
 *     keys: [{
 *         name: "ami",
 *         path: "service/app/launch_ami",
 *         "default": "ami-1234",
 *     }],
 * });
 * // Start our instance with the dynamic ami value
 * const appInstance = new aws.index.Instance("app", {ami: app["var"]?.ami});
 * ```
 */
export declare function getKeysOutput(args?: GetKeysOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetKeysResult>;
/**
 * A collection of arguments for invoking getKeys.
 */
export interface GetKeysOutputArgs {
    /**
     * The datacenter to use. This overrides the agent's default datacenter and the datacenter in the provider setup.
     */
    datacenter?: pulumi.Input<string>;
    /**
     * Whether to return an error when a key is absent from the KV store and no default is configured. This defaults to `false`.
     */
    errorOnMissingKeys?: pulumi.Input<boolean>;
    /**
     * Specifies a key in Consul to be read. Supported values documented below. Multiple blocks supported.
     */
    keys?: pulumi.Input<pulumi.Input<inputs.GetKeysKeyArgs>[]>;
    /**
     * The namespace to lookup the keys.
     */
    namespace?: pulumi.Input<string>;
    /**
     * The partition to lookup the keys.
     */
    partition?: pulumi.Input<string>;
    /**
     * The ACL token to use. This overrides the token that the agent provides by default.
     *
     * @deprecated The token argument has been deprecated and will be removed in a future release.
Please use the token argument in the provider configuration
     */
    token?: pulumi.Input<string>;
}
