import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
 * The `consul.getServices` data source returns a list of Consul services that
 * have been registered with the Consul cluster in a given datacenter.  By
 * specifying a different datacenter in the `queryOptions` it is possible to
 * retrieve a list of services from a different WAN-attached Consul datacenter.
 *
 * This data source is different from the `consul.Service` (singular) data
 * source, which provides a detailed response about a specific Consul service.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as consul from "@pulumi/consul";
 * import * as example from "@pulumi/example";
 * import * as std from "@pulumi/std";
 *
 * const read_dc1 = consul.getServices({
 *     queryOptions: [{
 *         datacenter: "dc1",
 *     }],
 * });
 * // Set the description to a whitespace delimited list of the services
 * const app = new example.index.Resource("app", {description: std.join({
 *     separator: " ",
 *     input: names,
 * }).result});
 * ```
 */
/** @deprecated getCatalogServices has been deprecated in favor of getServices */
export declare function getCatalogServices(args?: GetCatalogServicesArgs, opts?: pulumi.InvokeOptions): Promise<GetCatalogServicesResult>;
/**
 * A collection of arguments for invoking getCatalogServices.
 */
export interface GetCatalogServicesArgs {
    /**
     * See below.
     */
    queryOptions?: inputs.GetCatalogServicesQueryOption[];
}
/**
 * A collection of values returned by getCatalogServices.
 */
export interface GetCatalogServicesResult {
    /**
     * The datacenter the keys are being read from to.
     */
    readonly datacenter: string;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    readonly names: string[];
    readonly queryOptions?: outputs.GetCatalogServicesQueryOption[];
    readonly services: {
        [key: string]: string;
    };
    /**
     * A map of the tags found for each service.  If more than one service
     * shares the same tag, unique service names will be joined by whitespace (this
     * is the inverse of `services` and can be used to lookup the services that match
     * a single tag).
     */
    readonly tags: {
        [key: string]: string;
    };
}
/**
 * The `consul.getServices` data source returns a list of Consul services that
 * have been registered with the Consul cluster in a given datacenter.  By
 * specifying a different datacenter in the `queryOptions` it is possible to
 * retrieve a list of services from a different WAN-attached Consul datacenter.
 *
 * This data source is different from the `consul.Service` (singular) data
 * source, which provides a detailed response about a specific Consul service.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as consul from "@pulumi/consul";
 * import * as example from "@pulumi/example";
 * import * as std from "@pulumi/std";
 *
 * const read_dc1 = consul.getServices({
 *     queryOptions: [{
 *         datacenter: "dc1",
 *     }],
 * });
 * // Set the description to a whitespace delimited list of the services
 * const app = new example.index.Resource("app", {description: std.join({
 *     separator: " ",
 *     input: names,
 * }).result});
 * ```
 */
/** @deprecated getCatalogServices has been deprecated in favor of getServices */
export declare function getCatalogServicesOutput(args?: GetCatalogServicesOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetCatalogServicesResult>;
/**
 * A collection of arguments for invoking getCatalogServices.
 */
export interface GetCatalogServicesOutputArgs {
    /**
     * See below.
     */
    queryOptions?: pulumi.Input<pulumi.Input<inputs.GetCatalogServicesQueryOptionArgs>[]>;
}
