import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
/**
 * Configuration for Autoscaled Node budgets.
 */
export interface BudgetConfigArgs {
    /**
     * The duration during which disruptuon can happen.
     */
    duration?: pulumi.Input<string>;
    /**
     * The maximum number of nodes that can be scaled down at any time.
     */
    nodes?: pulumi.Input<string>;
    /**
     * A cron schedule for when disruption can happen.
     */
    schedule?: pulumi.Input<string>;
}
/**
 * Configuration for Autoscaled nodes disruption.
 */
export interface DisruptionConfigArgs {
    /**
     * Budgets control the speed Karpenter can scale down nodes.
     */
    budgets?: pulumi.Input<pulumi.Input<inputs.BudgetConfigArgs>[]>;
    /**
     * The amount of time Karpenter should wait after discovering a consolidation decision. This value can currently only be set when the consolidationPolicy is 'WhenEmpty'. You can choose to disable consolidation entirely by setting the string value 'Never' here.
     */
    consolidateAfter?: pulumi.Input<string>;
    /**
     * Describes which types of Nodes Karpenter should consider for consolidation.
     */
    consolidationPolicy?: pulumi.Input<string>;
    /**
     * The amount of time a Node can live on the cluster before being removed.
     */
    expireAfter?: pulumi.Input<string>;
}
/**
 * disruptionConfigArgsProvideDefaults sets the appropriate defaults for DisruptionConfigArgs
 */
export declare function disruptionConfigArgsProvideDefaults(val: DisruptionConfigArgs): DisruptionConfigArgs;
/**
 * Configuration for the ingress controller.
 */
export interface IngressConfigArgs {
    /**
     * Additional configuration for the ingress controller.
     */
    additionalConfig?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    }>;
    /**
     * Whether to allow snippet annotations in the ingress controller.
     */
    allowSnippetAnnotations?: pulumi.Input<boolean>;
    /**
     * The number of replicas of the ingress controller.
     */
    controllerReplicas?: pulumi.Input<number>;
    /**
     * Enable metrics for the ingress controller.
     */
    enableMetrics?: pulumi.Input<boolean>;
    /**
     * Enable the service monitor for kube-prometheus-stackl.
     */
    enableServiceMonitor?: pulumi.Input<boolean>;
    /**
     * NLB target type for NLB loadbalancers.
     */
    nlbTargetType?: pulumi.Input<string>;
    /**
     * The namespace to deploy the service monitor to.
     */
    serviceMonitorNamespace?: pulumi.Input<string>;
}
/**
 * ingressConfigArgsProvideDefaults sets the appropriate defaults for IngressConfigArgs
 */
export declare function ingressConfigArgsProvideDefaults(val: IngressConfigArgs): IngressConfigArgs;
/**
 * Represents a single requirement with key, operator, and values.
 */
export interface RequirementArgs {
    /**
     * The key of the requirement.
     */
    key?: pulumi.Input<string>;
    /**
     * The operator for the requirement (e.g., In, Gt).
     */
    operator?: pulumi.Input<string>;
    /**
     * The list of values for the requirement.
     */
    values?: pulumi.Input<pulumi.Input<string>[]>;
}
