import * as core from "@terrascript/core";
export interface AutoStartConfigurationArgs extends core.SchemaArgs {
    enabled?: boolean | core.BooleanOut;
}
export declare class AutoStartConfiguration extends core.Schema<AutoStartConfigurationArgs> {
    enabled?: boolean | core.BooleanOut;
}
export interface MaximumCapacityArgs extends core.SchemaArgs {
    cpu: string | core.StringOut;
    disk?: string | core.StringOut;
    memory: string | core.StringOut;
}
export declare class MaximumCapacity extends core.Schema<MaximumCapacityArgs> {
    cpu: string | core.StringOut;
    disk?: string | core.StringOut;
    memory: string | core.StringOut;
}
export interface AutoStopConfigurationArgs extends core.SchemaArgs {
    enabled?: boolean | core.BooleanOut;
    idleTimeoutMinutes?: number | core.NumberOut;
}
export declare class AutoStopConfiguration extends core.Schema<AutoStopConfigurationArgs> {
    enabled?: boolean | core.BooleanOut;
    idleTimeoutMinutes?: number | core.NumberOut;
}
export interface NetworkConfigurationArgs extends core.SchemaArgs {
    securityGroupIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    subnetIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class NetworkConfiguration extends core.Schema<NetworkConfigurationArgs> {
    securityGroupIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
    subnetIds?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface WorkerConfigurationArgs extends core.SchemaArgs {
    cpu: string | core.StringOut;
    disk?: string | core.StringOut;
    memory: string | core.StringOut;
}
export declare class WorkerConfiguration extends core.Schema<WorkerConfigurationArgs> {
    cpu: string | core.StringOut;
    disk?: string | core.StringOut;
    memory: string | core.StringOut;
}
export interface InitialCapacityConfigArgs extends core.SchemaArgs {
    workerConfiguration?: WorkerConfiguration;
    workerCount: number | core.NumberOut;
}
export declare class InitialCapacityConfig extends core.Schema<InitialCapacityConfigArgs> {
    workerConfiguration?: WorkerConfiguration;
    workerCount: number | core.NumberOut;
}
export interface InitialCapacityArgs extends core.SchemaArgs {
    initialCapacityConfig?: InitialCapacityConfig;
    initialCapacityType: string | core.StringOut;
}
export declare class InitialCapacity extends core.Schema<InitialCapacityArgs> {
    initialCapacityConfig?: InitialCapacityConfig;
    initialCapacityType: string | core.StringOut;
}
export interface ApplicationArgs extends core.ResourceArgs {
    autoStartConfiguration?: AutoStartConfiguration;
    autoStopConfiguration?: AutoStopConfiguration;
    initialCapacity?: core.Array<InitialCapacity> | core.ArrayOut<InitialCapacity>;
    maximumCapacity?: MaximumCapacity;
    name: string | core.StringOut;
    networkConfiguration?: NetworkConfiguration;
    releaseLabel: string | core.StringOut;
    /**
     * (Optional) Key-value mapping of resource tags. If configured with a provider [`default_tags` configu
     * ration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configu
     * ration-block) present, tags with matching keys will overwrite those defined at the provider-level.
     */
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    /**
     * Map of tags assigned to the resource, including those inherited from the provider [`default_tags` co
     * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co
     * nfiguration-block).
     */
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    type: string | core.StringOut;
}
export declare class Application extends core.Resource<ApplicationArgs> {
    /**
     * ARN of the cluster.
     */
    arn: string | core.StringOut;
    autoStartConfiguration?: AutoStartConfiguration;
    autoStopConfiguration?: AutoStopConfiguration;
    /**
     * The ID of the cluster.
     */
    id: string | core.StringOut;
    initialCapacity?: core.Array<InitialCapacity> | core.ArrayOut<InitialCapacity>;
    maximumCapacity?: MaximumCapacity;
    name: string | core.StringOut;
    networkConfiguration?: NetworkConfiguration;
    releaseLabel: string | core.StringOut;
    /**
     * (Optional) Key-value mapping of resource tags. If configured with a provider [`default_tags` configu
     * ration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configu
     * ration-block) present, tags with matching keys will overwrite those defined at the provider-level.
     */
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    /**
     * Map of tags assigned to the resource, including those inherited from the provider [`default_tags` co
     * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co
     * nfiguration-block).
     */
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    type: string | core.StringOut;
    constructor(name: string, args?: ApplicationArgs);
    getNamespace(): string;
}
//# sourceMappingURL=application.d.ts.map