import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * A RemoteConfig represents a Remote Config template.
 *
 * To get more information about RemoteConfig, see:
 *
 * * [API documentation](https://firebase.google.com/docs/reference/remote-config/rest/v1/projects/getRemoteConfig)
 * * How-to Guides
 *     * [Remote Config Introduction](https://firebase.google.com/docs/remote-config)
 *
 * ## Example Usage
 *
 * ### Firebase Remote Config Basic
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as gcp from "@pulumi/gcp";
 *
 * const basic = new gcp.firebase.RemoteConfigRemoteConfig("basic", {
 *     conditions: [{
 *         name: "ios_en",
 *         expression: "device.os == 'ios' && device.country in ['us']",
 *         tagColor: "TEAL",
 *     }],
 *     parameters: [{
 *         parameterName: "welcome_message",
 *         description: "Welcome message",
 *         valueType: "STRING",
 *         defaultValue: {
 *             value: "Welcome to the App!",
 *         },
 *         conditionalValues: [{
 *             conditionName: "ios_en",
 *             value: "Welcome to the App on iOS!",
 *         }],
 *     }],
 *     parameterGroups: [{
 *         parameterGroupName: "group_a",
 *         description: "Parameter group A description",
 *         parameters: [{
 *             parameterName: "welcome_message_group",
 *             description: "Welcome message for group A",
 *             valueType: "STRING",
 *             defaultValue: {
 *                 value: "Welcome Group A!",
 *             },
 *             conditionalValues: [{
 *                 conditionName: "ios_en",
 *                 value: "Welcome Group A on iOS!",
 *             }],
 *         }],
 *     }],
 * });
 * ```
 *
 * ## Import
 *
 * RemoteConfig can be imported using any of these accepted formats:
 *
 * * `projects/{{project}}/remoteConfig`
 * * `{{project}}`
 *
 * When using the `pulumi import` command, RemoteConfig can be imported using one of the formats above. For example:
 *
 * ```sh
 * $ pulumi import gcp:firebase/remoteConfigRemoteConfig:RemoteConfigRemoteConfig default projects/{{project}}/remoteConfig
 * $ pulumi import gcp:firebase/remoteConfigRemoteConfig:RemoteConfigRemoteConfig default {{project}}
 * ```
 */
export declare class RemoteConfigRemoteConfig extends pulumi.CustomResource {
    /**
     * Get an existing RemoteConfigRemoteConfig resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: RemoteConfigRemoteConfigState, opts?: pulumi.CustomResourceOptions): RemoteConfigRemoteConfig;
    /**
     * Returns true if the given object is an instance of RemoteConfigRemoteConfig.  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 RemoteConfigRemoteConfig;
    /**
     * A list of conditions in descending order by priority.
     * The values of the condition names must be unique.
     * Structure is documented below.
     */
    readonly conditions: pulumi.Output<outputs.firebase.RemoteConfigRemoteConfigCondition[] | undefined>;
    /**
     * (Output)
     * Display name.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Map of parameter group names to their descriptions and grouped parameters.
     * A group's name is mutable but must be unique among groups in the config.
     * The name is limited to 256 characters and intended to be human-readable.
     * Any Unicode characters are allowed.
     * Groups have a list of parameters which allows users of the API to group
     * parameters that are associated with the same feature or theme together for
     * easy organizational access.
     * For example, a parameter group with the name "Search V2" may have the
     * `description` "New mobile search view" and contain parameters for the new
     * search's layout and font.
     * Structure is documented below.
     */
    readonly parameterGroups: pulumi.Output<outputs.firebase.RemoteConfigRemoteConfigParameterGroup[] | undefined>;
    /**
     * Map of parameter keys to their optional default values and optional
     * conditional values.
     * Structure is documented below.
     */
    readonly parameters: pulumi.Output<outputs.firebase.RemoteConfigRemoteConfigParameter[] | undefined>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    readonly project: pulumi.Output<string>;
    /**
     * Contains all metadata about a particular version of the Remote Config
     * template.
     * All fields are set at the time the specified Remote Config template was
     * written.
     * Structure is documented below.
     */
    readonly versions: pulumi.Output<outputs.firebase.RemoteConfigRemoteConfigVersion[]>;
    /**
     * Create a RemoteConfigRemoteConfig 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?: RemoteConfigRemoteConfigArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering RemoteConfigRemoteConfig resources.
 */
export interface RemoteConfigRemoteConfigState {
    /**
     * A list of conditions in descending order by priority.
     * The values of the condition names must be unique.
     * Structure is documented below.
     */
    conditions?: pulumi.Input<pulumi.Input<inputs.firebase.RemoteConfigRemoteConfigCondition>[] | undefined>;
    /**
     * (Output)
     * Display name.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Map of parameter group names to their descriptions and grouped parameters.
     * A group's name is mutable but must be unique among groups in the config.
     * The name is limited to 256 characters and intended to be human-readable.
     * Any Unicode characters are allowed.
     * Groups have a list of parameters which allows users of the API to group
     * parameters that are associated with the same feature or theme together for
     * easy organizational access.
     * For example, a parameter group with the name "Search V2" may have the
     * `description` "New mobile search view" and contain parameters for the new
     * search's layout and font.
     * Structure is documented below.
     */
    parameterGroups?: pulumi.Input<pulumi.Input<inputs.firebase.RemoteConfigRemoteConfigParameterGroup>[] | undefined>;
    /**
     * Map of parameter keys to their optional default values and optional
     * conditional values.
     * Structure is documented below.
     */
    parameters?: pulumi.Input<pulumi.Input<inputs.firebase.RemoteConfigRemoteConfigParameter>[] | undefined>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    project?: pulumi.Input<string | undefined>;
    /**
     * Contains all metadata about a particular version of the Remote Config
     * template.
     * All fields are set at the time the specified Remote Config template was
     * written.
     * Structure is documented below.
     */
    versions?: pulumi.Input<pulumi.Input<inputs.firebase.RemoteConfigRemoteConfigVersion>[] | undefined>;
}
/**
 * The set of arguments for constructing a RemoteConfigRemoteConfig resource.
 */
export interface RemoteConfigRemoteConfigArgs {
    /**
     * A list of conditions in descending order by priority.
     * The values of the condition names must be unique.
     * Structure is documented below.
     */
    conditions?: pulumi.Input<pulumi.Input<inputs.firebase.RemoteConfigRemoteConfigCondition>[] | undefined>;
    /**
     * Map of parameter group names to their descriptions and grouped parameters.
     * A group's name is mutable but must be unique among groups in the config.
     * The name is limited to 256 characters and intended to be human-readable.
     * Any Unicode characters are allowed.
     * Groups have a list of parameters which allows users of the API to group
     * parameters that are associated with the same feature or theme together for
     * easy organizational access.
     * For example, a parameter group with the name "Search V2" may have the
     * `description` "New mobile search view" and contain parameters for the new
     * search's layout and font.
     * Structure is documented below.
     */
    parameterGroups?: pulumi.Input<pulumi.Input<inputs.firebase.RemoteConfigRemoteConfigParameterGroup>[] | undefined>;
    /**
     * Map of parameter keys to their optional default values and optional
     * conditional values.
     * Structure is documented below.
     */
    parameters?: pulumi.Input<pulumi.Input<inputs.firebase.RemoteConfigRemoteConfigParameter>[] | undefined>;
    /**
     * The ID of the project in which the resource belongs.
     * If it is not provided, the provider project is used.
     */
    project?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=remoteConfigRemoteConfig.d.ts.map