import * as pulumi from "@pulumi/pulumi";
/**
 * Provides access to available Google Compute regions for a given project.
 * See more about [regions and zones](https://cloud.google.com/compute/docs/regions-zones/) in the upstream docs.
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * const available = gcp.compute.getRegions({});
 * const cluster: gcp.compute.Subnetwork[] = [];
 * available.then(available => available.names).length.apply(rangeBody => {
 *     for (const range = {value: 0}; range.value < rangeBody; range.value++) {
 *         cluster.push(new gcp.compute.Subnetwork(`cluster-${range.value}`, {
 *             name: "my-network",
 *             ipCidrRange: `10.36.${range.value}.0/24`,
 *             network: "my-network",
 *             region: available.then(available => available.names[range.value]),
 *         }));
 *     }
 * });
 * ```
 */
export declare function getRegions(args?: GetRegionsArgs, opts?: pulumi.InvokeOptions): Promise<GetRegionsResult>;
/**
 * A collection of arguments for invoking getRegions.
 */
export interface GetRegionsArgs {
    /**
     * Project from which to list available regions. Defaults to project declared in the provider.
     */
    project?: string;
    /**
     * Allows to filter list of regions based on their current status. Status can be either `UP` or `DOWN`.
     * Defaults to no filtering (all available regions - both `UP` and `DOWN`).
     */
    status?: string;
}
/**
 * A collection of values returned by getRegions.
 */
export interface GetRegionsResult {
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * A list of regions available in the given project
     */
    readonly names: string[];
    readonly project: string;
    readonly status?: string;
}
/**
 * Provides access to available Google Compute regions for a given project.
 * See more about [regions and zones](https://cloud.google.com/compute/docs/regions-zones/) in the upstream docs.
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * const available = gcp.compute.getRegions({});
 * const cluster: gcp.compute.Subnetwork[] = [];
 * available.then(available => available.names).length.apply(rangeBody => {
 *     for (const range = {value: 0}; range.value < rangeBody; range.value++) {
 *         cluster.push(new gcp.compute.Subnetwork(`cluster-${range.value}`, {
 *             name: "my-network",
 *             ipCidrRange: `10.36.${range.value}.0/24`,
 *             network: "my-network",
 *             region: available.then(available => available.names[range.value]),
 *         }));
 *     }
 * });
 * ```
 */
export declare function getRegionsOutput(args?: GetRegionsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetRegionsResult>;
/**
 * A collection of arguments for invoking getRegions.
 */
export interface GetRegionsOutputArgs {
    /**
     * Project from which to list available regions. Defaults to project declared in the provider.
     */
    project?: pulumi.Input<string | undefined>;
    /**
     * Allows to filter list of regions based on their current status. Status can be either `UP` or `DOWN`.
     * Defaults to no filtering (all available regions - both `UP` and `DOWN`).
     */
    status?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=getRegions.d.ts.map