import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Manages an Arc Kubernetes Flux Configuration.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 * import * as std from "@pulumi/std";
 *
 * const example = new azure.core.ResourceGroup("example", {
 *     name: "example-resources",
 *     location: "West Europe",
 * });
 * const exampleCluster = new azure.arckubernetes.Cluster("example", {
 *     name: "example-akcc",
 *     resourceGroupName: example.name,
 *     location: "West Europe",
 *     agentPublicKeyCertificate: std.filebase64({
 *         input: "testdata/public.cer",
 *     }).then(invoke => invoke.result),
 *     identity: {
 *         type: "SystemAssigned",
 *     },
 *     tags: {
 *         ENV: "Test",
 *     },
 * });
 * const exampleClusterExtension = new azure.arckubernetes.ClusterExtension("example", {
 *     name: "example-ext",
 *     clusterId: test.id,
 *     extensionType: "microsoft.flux",
 * });
 * const exampleFluxConfiguration = new azure.arckubernetes.FluxConfiguration("example", {
 *     name: "example-fc",
 *     clusterId: test.id,
 *     namespace: "flux",
 *     gitRepository: {
 *         url: "https://github.com/Azure/arc-k8s-demo",
 *         referenceType: "branch",
 *         referenceValue: "main",
 *     },
 *     kustomizations: [{
 *         name: "kustomization-1",
 *     }],
 * }, {
 *     dependsOn: [exampleClusterExtension],
 * });
 * ```
 *
 * ## API Providers
 *
 * <!-- This section is generated, changes will be overwritten -->
 * This resource uses the following Azure API Providers:
 *
 * * `Microsoft.KubernetesConfiguration` - 2025-04-01
 *
 * ## Import
 *
 * Arc Kubernetes Flux Configuration can be imported using the `resource id` for different `clusterResourceName`, e.g.
 *
 * ```sh
 * $ pulumi import azure:arckubernetes/fluxConfiguration:FluxConfiguration example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.Kubernetes/connectedClusters/cluster1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/fluxConfiguration1
 * ```
 */
export declare class FluxConfiguration extends pulumi.CustomResource {
    /**
     * Get an existing FluxConfiguration 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?: FluxConfigurationState, opts?: pulumi.CustomResourceOptions): FluxConfiguration;
    /**
     * Returns true if the given object is an instance of FluxConfiguration.  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 FluxConfiguration;
    /**
     * An `blobStorage` block as defined below.
     */
    readonly blobStorage: pulumi.Output<outputs.arckubernetes.FluxConfigurationBlobStorage | undefined>;
    /**
     * A `bucket` block as defined below.
     */
    readonly bucket: pulumi.Output<outputs.arckubernetes.FluxConfigurationBucket | undefined>;
    /**
     * Specifies the Cluster ID. Changing this forces a new Arc Kubernetes Cluster Extension to be created.
     */
    readonly clusterId: pulumi.Output<string>;
    /**
     * Whether the configuration will keep its reconciliation of its kustomizations and sources with the repository. Defaults to `true`.
     */
    readonly continuousReconciliationEnabled: pulumi.Output<boolean | undefined>;
    /**
     * A `gitRepository` block as defined below.
     */
    readonly gitRepository: pulumi.Output<outputs.arckubernetes.FluxConfigurationGitRepository | undefined>;
    /**
     * A `kustomizations` block as defined below.
     */
    readonly kustomizations: pulumi.Output<outputs.arckubernetes.FluxConfigurationKustomization[]>;
    /**
     * Specifies the name which should be used for this Arc Kubernetes Flux Configuration. Changing this forces a new Arc Kubernetes Flux Configuration to be created.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Specifies the namespace to which this configuration is installed to. Changing this forces a new Arc Kubernetes Flux Configuration to be created.
     */
    readonly namespace: pulumi.Output<string>;
    /**
     * Specifies the scope at which the operator will be installed. Possible values are `cluster` and `namespace`. Defaults to `namespace`. Changing this forces a new Arc Kubernetes Flux Configuration to be created.
     */
    readonly scope: pulumi.Output<string | undefined>;
    /**
     * Create a FluxConfiguration 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: FluxConfigurationArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering FluxConfiguration resources.
 */
export interface FluxConfigurationState {
    /**
     * An `blobStorage` block as defined below.
     */
    blobStorage?: pulumi.Input<inputs.arckubernetes.FluxConfigurationBlobStorage | undefined>;
    /**
     * A `bucket` block as defined below.
     */
    bucket?: pulumi.Input<inputs.arckubernetes.FluxConfigurationBucket | undefined>;
    /**
     * Specifies the Cluster ID. Changing this forces a new Arc Kubernetes Cluster Extension to be created.
     */
    clusterId?: pulumi.Input<string | undefined>;
    /**
     * Whether the configuration will keep its reconciliation of its kustomizations and sources with the repository. Defaults to `true`.
     */
    continuousReconciliationEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * A `gitRepository` block as defined below.
     */
    gitRepository?: pulumi.Input<inputs.arckubernetes.FluxConfigurationGitRepository | undefined>;
    /**
     * A `kustomizations` block as defined below.
     */
    kustomizations?: pulumi.Input<pulumi.Input<inputs.arckubernetes.FluxConfigurationKustomization>[] | undefined>;
    /**
     * Specifies the name which should be used for this Arc Kubernetes Flux Configuration. Changing this forces a new Arc Kubernetes Flux Configuration to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Specifies the namespace to which this configuration is installed to. Changing this forces a new Arc Kubernetes Flux Configuration to be created.
     */
    namespace?: pulumi.Input<string | undefined>;
    /**
     * Specifies the scope at which the operator will be installed. Possible values are `cluster` and `namespace`. Defaults to `namespace`. Changing this forces a new Arc Kubernetes Flux Configuration to be created.
     */
    scope?: pulumi.Input<string | undefined>;
}
/**
 * The set of arguments for constructing a FluxConfiguration resource.
 */
export interface FluxConfigurationArgs {
    /**
     * An `blobStorage` block as defined below.
     */
    blobStorage?: pulumi.Input<inputs.arckubernetes.FluxConfigurationBlobStorage | undefined>;
    /**
     * A `bucket` block as defined below.
     */
    bucket?: pulumi.Input<inputs.arckubernetes.FluxConfigurationBucket | undefined>;
    /**
     * Specifies the Cluster ID. Changing this forces a new Arc Kubernetes Cluster Extension to be created.
     */
    clusterId: pulumi.Input<string>;
    /**
     * Whether the configuration will keep its reconciliation of its kustomizations and sources with the repository. Defaults to `true`.
     */
    continuousReconciliationEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * A `gitRepository` block as defined below.
     */
    gitRepository?: pulumi.Input<inputs.arckubernetes.FluxConfigurationGitRepository | undefined>;
    /**
     * A `kustomizations` block as defined below.
     */
    kustomizations: pulumi.Input<pulumi.Input<inputs.arckubernetes.FluxConfigurationKustomization>[]>;
    /**
     * Specifies the name which should be used for this Arc Kubernetes Flux Configuration. Changing this forces a new Arc Kubernetes Flux Configuration to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Specifies the namespace to which this configuration is installed to. Changing this forces a new Arc Kubernetes Flux Configuration to be created.
     */
    namespace: pulumi.Input<string>;
    /**
     * Specifies the scope at which the operator will be installed. Possible values are `cluster` and `namespace`. Defaults to `namespace`. Changing this forces a new Arc Kubernetes Flux Configuration to be created.
     */
    scope?: pulumi.Input<string | undefined>;
}
//# sourceMappingURL=fluxConfiguration.d.ts.map