import * as pulumi from "@pulumi/pulumi";
import * as outputs from "../types/output";
/**
 * Provides access to available Google Compute machine types in a zone for a given project.
 * See more about [machine type availability](https://cloud.google.com/compute/docs/regions-zones#available) in the upstream docs.
 *
 * To get more information about machine types, see:
 *
 * * [API Documentation](https://cloud.google.com/compute/docs/reference/rest/v1/machineTypes/list)
 * * [Comparison Guide](https://cloud.google.com/compute/docs/machine-resource)
 *
 * ## Example Usage
 */
export declare function getMachineTypes(args?: GetMachineTypesArgs, opts?: pulumi.InvokeOptions): Promise<GetMachineTypesResult>;
/**
 * A collection of arguments for invoking getMachineTypes.
 */
export interface GetMachineTypesArgs {
    /**
     * A filter expression that filters machine types listed in the response.
     */
    filter?: string;
    /**
     * Project from which to list available zones. Defaults to project declared in the provider.
     */
    project?: string;
    /**
     * Zone from which to list machine types.
     */
    zone?: string;
}
/**
 * A collection of values returned by getMachineTypes.
 */
export interface GetMachineTypesResult {
    readonly filter?: string;
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * The list of machine types matching the provided filter. Structure is documented below.
     */
    readonly machineTypes: outputs.compute.GetMachineTypesMachineType[];
    readonly project: string;
    readonly zone: string;
}
/**
 * Provides access to available Google Compute machine types in a zone for a given project.
 * See more about [machine type availability](https://cloud.google.com/compute/docs/regions-zones#available) in the upstream docs.
 *
 * To get more information about machine types, see:
 *
 * * [API Documentation](https://cloud.google.com/compute/docs/reference/rest/v1/machineTypes/list)
 * * [Comparison Guide](https://cloud.google.com/compute/docs/machine-resource)
 *
 * ## Example Usage
 */
export declare function getMachineTypesOutput(args?: GetMachineTypesOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetMachineTypesResult>;
/**
 * A collection of arguments for invoking getMachineTypes.
 */
export interface GetMachineTypesOutputArgs {
    /**
     * A filter expression that filters machine types listed in the response.
     */
    filter?: pulumi.Input<string>;
    /**
     * Project from which to list available zones. Defaults to project declared in the provider.
     */
    project?: pulumi.Input<string>;
    /**
     * Zone from which to list machine types.
     */
    zone?: pulumi.Input<string>;
}
