import * as core from "@terrascript/core";
export interface ListenerArgs extends core.SchemaArgs {
    instancePort: number | core.NumberOut;
    instanceProtocol: string | core.StringOut;
    lbPort: number | core.NumberOut;
    lbProtocol: string | core.StringOut;
    sslCertificateId: string | core.StringOut;
}
export declare class Listener extends core.Schema<ListenerArgs> {
    instancePort: number | core.NumberOut;
    instanceProtocol: string | core.StringOut;
    lbPort: number | core.NumberOut;
    lbProtocol: string | core.StringOut;
    sslCertificateId: string | core.StringOut;
}
export interface HealthCheckArgs extends core.SchemaArgs {
    healthyThreshold: number | core.NumberOut;
    interval: number | core.NumberOut;
    target: string | core.StringOut;
    timeout: number | core.NumberOut;
    unhealthyThreshold: number | core.NumberOut;
}
export declare class HealthCheck extends core.Schema<HealthCheckArgs> {
    healthyThreshold: number | core.NumberOut;
    interval: number | core.NumberOut;
    target: string | core.StringOut;
    timeout: number | core.NumberOut;
    unhealthyThreshold: number | core.NumberOut;
}
export interface AccessLogsArgs extends core.SchemaArgs {
    bucket: string | core.StringOut;
    bucketPrefix: string | core.StringOut;
    enabled: boolean | core.BooleanOut;
    interval: number | core.NumberOut;
}
export declare class AccessLogs extends core.Schema<AccessLogsArgs> {
    bucket: string | core.StringOut;
    bucketPrefix: string | core.StringOut;
    enabled: boolean | core.BooleanOut;
    interval: number | core.NumberOut;
}
export interface DsMainArgs {
    name: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class DsMain extends core.Data<DsMainArgs> {
    accessLogs: core.Array<AccessLogs> | core.ArrayOut<AccessLogs>;
    arn: string | core.StringOut;
    availabilityZones: core.Array<string> | core.ArrayOut<core.StringOut>;
    connectionDraining: boolean | core.BooleanOut;
    connectionDrainingTimeout: number | core.NumberOut;
    crossZoneLoadBalancing: boolean | core.BooleanOut;
    desyncMitigationMode: string | core.StringOut;
    dnsName: string | core.StringOut;
    healthCheck: core.Array<HealthCheck> | core.ArrayOut<HealthCheck>;
    id: string | core.StringOut;
    idleTimeout: number | core.NumberOut;
    instances: core.Array<string> | core.ArrayOut<core.StringOut>;
    internal: boolean | core.BooleanOut;
    listener: core.Array<Listener> | core.ArrayOut<Listener>;
    name: string | core.StringOut;
    securityGroups: core.Array<string> | core.ArrayOut<core.StringOut>;
    sourceSecurityGroup: string | core.StringOut;
    sourceSecurityGroupId: string | core.StringOut;
    subnets: core.Array<string> | core.ArrayOut<core.StringOut>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    zoneId: string | core.StringOut;
    constructor(name: string, args?: DsMainArgs);
    getNamespace(): string;
}
//# sourceMappingURL=ds_main.d.ts.map