import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Resource Type definition for AWS::ElasticLoadBalancing::LoadBalancer
 */
export declare class LoadBalancer extends pulumi.CustomResource {
    /**
     * Get an existing LoadBalancer 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 opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): LoadBalancer;
    /**
     * Returns true if the given object is an instance of LoadBalancer.  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 LoadBalancer;
    /**
     * Information about where and how access logs are stored for the load balancer.
     */
    readonly accessLoggingPolicy: pulumi.Output<outputs.elasticloadbalancing.LoadBalancerAccessLoggingPolicy | undefined>;
    /**
     * Information about a policy for application-controlled session stickiness.
     */
    readonly appCookieStickinessPolicy: pulumi.Output<outputs.elasticloadbalancing.LoadBalancerAppCookieStickinessPolicy[] | undefined>;
    /**
     * The Availability Zones for a load balancer in a default VPC. For a load balancer in a nondefault VPC, specify Subnets instead.
     */
    readonly availabilityZones: pulumi.Output<string[] | undefined>;
    /**
     * The name of the Route 53 hosted zone that is associated with the load balancer. Internal-facing load balancers.
     */
    readonly canonicalHostedZoneName: pulumi.Output<string>;
    /**
     * The ID of the Route 53 hosted zone name that is associated with the load balancer.
     */
    readonly canonicalHostedZoneNameId: pulumi.Output<string>;
    /**
     * If enabled, the load balancer allows existing requests to complete before the load balancer shifts traffic away from a deregistered or unhealthy instance.
     */
    readonly connectionDrainingPolicy: pulumi.Output<outputs.elasticloadbalancing.LoadBalancerConnectionDrainingPolicy | undefined>;
    /**
     * If enabled, the load balancer allows the connections to remain idle (no data is sent over the connection) for the specified duration.
     */
    readonly connectionSettings: pulumi.Output<outputs.elasticloadbalancing.LoadBalancerConnectionSettings | undefined>;
    /**
     * If enabled, the load balancer routes the request traffic evenly across all instances regardless of the Availability Zones.
     */
    readonly crossZone: pulumi.Output<boolean | undefined>;
    /**
     * The DNS name for the load balancer
     */
    readonly dnsName: pulumi.Output<string>;
    /**
     * The health check settings to use when evaluating the health of your EC2 instances.
     */
    readonly healthCheck: pulumi.Output<outputs.elasticloadbalancing.LoadBalancerHealthCheck | undefined>;
    /**
     * The IDs of the instances for the load balancer.
     */
    readonly instances: pulumi.Output<string[] | undefined>;
    /**
     * Information about a policy for duration-based session stickiness.
     */
    readonly lbCookieStickinessPolicy: pulumi.Output<outputs.elasticloadbalancing.LoadBalancerLbCookieStickinessPolicy[] | undefined>;
    /**
     * The Listeners for the load balancer. You can specify at most one listener per port.
     */
    readonly listeners: pulumi.Output<outputs.elasticloadbalancing.LoadBalancerListeners[]>;
    /**
     * The name of the load balancer. This name must be unique within your set of load balancers for the region.
     */
    readonly loadBalancerName: pulumi.Output<string | undefined>;
    /**
     * The policies defined for your Classic Load Balancer. Specify only back-end server policies.
     */
    readonly policies: pulumi.Output<outputs.elasticloadbalancing.LoadBalancerPolicies[] | undefined>;
    /**
     * The type of load balancer. Valid only for load balancers in a VPC.
     */
    readonly scheme: pulumi.Output<string | undefined>;
    /**
     * The security groups for the load balancer. Valid only for load balancers in a VPC.
     */
    readonly securityGroups: pulumi.Output<string[] | undefined>;
    readonly sourceSecurityGroup: pulumi.Output<outputs.elasticloadbalancing.LoadBalancerSourceSecurityGroup>;
    /**
     * The IDs of the subnets for the load balancer. You can specify at most one subnet per Availability Zone.
     */
    readonly subnets: pulumi.Output<string[] | undefined>;
    /**
     * The tags associated with a load balancer.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * Create a LoadBalancer 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: LoadBalancerArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a LoadBalancer resource.
 */
export interface LoadBalancerArgs {
    /**
     * Information about where and how access logs are stored for the load balancer.
     */
    accessLoggingPolicy?: pulumi.Input<inputs.elasticloadbalancing.LoadBalancerAccessLoggingPolicyArgs>;
    /**
     * Information about a policy for application-controlled session stickiness.
     */
    appCookieStickinessPolicy?: pulumi.Input<pulumi.Input<inputs.elasticloadbalancing.LoadBalancerAppCookieStickinessPolicyArgs>[]>;
    /**
     * The Availability Zones for a load balancer in a default VPC. For a load balancer in a nondefault VPC, specify Subnets instead.
     */
    availabilityZones?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * If enabled, the load balancer allows existing requests to complete before the load balancer shifts traffic away from a deregistered or unhealthy instance.
     */
    connectionDrainingPolicy?: pulumi.Input<inputs.elasticloadbalancing.LoadBalancerConnectionDrainingPolicyArgs>;
    /**
     * If enabled, the load balancer allows the connections to remain idle (no data is sent over the connection) for the specified duration.
     */
    connectionSettings?: pulumi.Input<inputs.elasticloadbalancing.LoadBalancerConnectionSettingsArgs>;
    /**
     * If enabled, the load balancer routes the request traffic evenly across all instances regardless of the Availability Zones.
     */
    crossZone?: pulumi.Input<boolean>;
    /**
     * The health check settings to use when evaluating the health of your EC2 instances.
     */
    healthCheck?: pulumi.Input<inputs.elasticloadbalancing.LoadBalancerHealthCheckArgs>;
    /**
     * The IDs of the instances for the load balancer.
     */
    instances?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Information about a policy for duration-based session stickiness.
     */
    lbCookieStickinessPolicy?: pulumi.Input<pulumi.Input<inputs.elasticloadbalancing.LoadBalancerLbCookieStickinessPolicyArgs>[]>;
    /**
     * The Listeners for the load balancer. You can specify at most one listener per port.
     */
    listeners: pulumi.Input<pulumi.Input<inputs.elasticloadbalancing.LoadBalancerListenersArgs>[]>;
    /**
     * The name of the load balancer. This name must be unique within your set of load balancers for the region.
     */
    loadBalancerName?: pulumi.Input<string>;
    /**
     * The policies defined for your Classic Load Balancer. Specify only back-end server policies.
     */
    policies?: pulumi.Input<pulumi.Input<inputs.elasticloadbalancing.LoadBalancerPoliciesArgs>[]>;
    /**
     * The type of load balancer. Valid only for load balancers in a VPC.
     */
    scheme?: pulumi.Input<string>;
    /**
     * The security groups for the load balancer. Valid only for load balancers in a VPC.
     */
    securityGroups?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The IDs of the subnets for the load balancer. You can specify at most one subnet per Availability Zone.
     */
    subnets?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The tags associated with a load balancer.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
}
