import { ResourceBase, ResourceTag as Inner_ResourceTag } from "../../resource";
import { Value, List, MapOf } from "../../data-types";
export declare class Policies {
    Attributes: List<MapOf<any>>;
    InstancePorts?: List<Value<string>>;
    LoadBalancerPorts?: List<Value<string>>;
    PolicyName: Value<string>;
    PolicyType: Value<string>;
    constructor(properties: Policies);
}
export declare class Listeners {
    InstancePort: Value<string>;
    InstanceProtocol?: Value<string>;
    LoadBalancerPort: Value<string>;
    PolicyNames?: List<Value<string>>;
    Protocol: Value<string>;
    SSLCertificateId?: Value<string>;
    constructor(properties: Listeners);
}
export declare class AppCookieStickinessPolicy {
    CookieName: Value<string>;
    PolicyName: Value<string>;
    constructor(properties: AppCookieStickinessPolicy);
}
export declare class ConnectionDrainingPolicy {
    Enabled: Value<boolean>;
    Timeout?: Value<number>;
    constructor(properties: ConnectionDrainingPolicy);
}
export declare class LBCookieStickinessPolicy {
    CookieExpirationPeriod?: Value<string>;
    PolicyName?: Value<string>;
    constructor(properties: LBCookieStickinessPolicy);
}
export declare class HealthCheck {
    HealthyThreshold: Value<string>;
    Interval: Value<string>;
    Target: Value<string>;
    Timeout: Value<string>;
    UnhealthyThreshold: Value<string>;
    constructor(properties: HealthCheck);
}
export declare class AccessLoggingPolicy {
    EmitInterval?: Value<number>;
    Enabled: Value<boolean>;
    S3BucketName: Value<string>;
    S3BucketPrefix?: Value<string>;
    constructor(properties: AccessLoggingPolicy);
}
export declare class ConnectionSettings {
    IdleTimeout: Value<number>;
    constructor(properties: ConnectionSettings);
}
export interface LoadBalancerProperties {
    ConnectionSettings?: ConnectionSettings;
    Scheme?: Value<string>;
    LoadBalancerName?: Value<string>;
    AppCookieStickinessPolicy?: List<AppCookieStickinessPolicy>;
    AvailabilityZones?: List<Value<string>>;
    CrossZone?: Value<boolean>;
    HealthCheck?: HealthCheck;
    AccessLoggingPolicy?: AccessLoggingPolicy;
    Policies?: List<Policies>;
    SecurityGroups?: List<Value<string>>;
    Subnets?: List<Value<string>>;
    Tags?: List<Inner_ResourceTag>;
    ConnectionDrainingPolicy?: ConnectionDrainingPolicy;
    LBCookieStickinessPolicy?: List<LBCookieStickinessPolicy>;
    Instances?: List<Value<string>>;
    Listeners: List<Listeners>;
}
export default class Inner_LoadBalancer extends ResourceBase<LoadBalancerProperties> {
    static Policies: typeof Policies;
    static Listeners: typeof Listeners;
    static AppCookieStickinessPolicy: typeof AppCookieStickinessPolicy;
    static ConnectionDrainingPolicy: typeof ConnectionDrainingPolicy;
    static LBCookieStickinessPolicy: typeof LBCookieStickinessPolicy;
    static HealthCheck: typeof HealthCheck;
    static AccessLoggingPolicy: typeof AccessLoggingPolicy;
    static ConnectionSettings: typeof ConnectionSettings;
    constructor(properties: LoadBalancerProperties);
}
