import { ResourceBase } from "../../resource";
import { Value, List, MapOf } from "../../data-types";
export declare class RetryStrategy {
    Attempts?: Value<number>;
    constructor(properties: RetryStrategy);
}
export declare class Ulimit {
    SoftLimit: Value<number>;
    HardLimit: Value<number>;
    Name: Value<string>;
    constructor(properties: Ulimit);
}
export declare class MountPoints {
    ReadOnly?: Value<boolean>;
    SourceVolume?: Value<string>;
    ContainerPath?: Value<string>;
    constructor(properties: MountPoints);
}
export declare class LinuxParameters {
    Devices?: List<Device>;
    constructor(properties: LinuxParameters);
}
export declare class VolumesHost {
    SourcePath?: Value<string>;
    constructor(properties: VolumesHost);
}
export declare class Timeout {
    AttemptDurationSeconds?: Value<number>;
    constructor(properties: Timeout);
}
export declare class NodeProperties {
    MainNode: Value<number>;
    NodeRangeProperties: List<NodeRangeProperty>;
    NumNodes: Value<number>;
    constructor(properties: NodeProperties);
}
export declare class Device {
    HostPath?: Value<string>;
    Permissions?: List<Value<string>>;
    ContainerPath?: Value<string>;
    constructor(properties: Device);
}
export declare class NodeRangeProperty {
    Container?: ContainerProperties;
    TargetNodes: Value<string>;
    constructor(properties: NodeRangeProperty);
}
export declare class Environment {
    Value?: Value<string>;
    Name?: Value<string>;
    constructor(properties: Environment);
}
export declare class ContainerProperties {
    Vcpus?: Value<number>;
    Memory?: Value<number>;
    JobRoleArn?: Value<string>;
    Command?: List<Value<string>>;
    User?: Value<string>;
    Ulimits?: List<Ulimit>;
    ReadonlyRootFilesystem?: Value<boolean>;
    InstanceType?: Value<string>;
    Environment?: List<Environment>;
    Privileged?: Value<boolean>;
    Volumes?: List<Volumes>;
    Image: Value<string>;
    MountPoints?: List<MountPoints>;
    LinuxParameters?: LinuxParameters;
    ResourceRequirements?: List<ResourceRequirement>;
    constructor(properties: ContainerProperties);
}
export declare class ResourceRequirement {
    Type?: Value<string>;
    Value?: Value<string>;
    constructor(properties: ResourceRequirement);
}
export declare class Volumes {
    Host?: VolumesHost;
    Name?: Value<string>;
    constructor(properties: Volumes);
}
export interface JobDefinitionProperties {
    Type: Value<string>;
    Parameters?: MapOf<any>;
    NodeProperties?: NodeProperties;
    Timeout?: Timeout;
    ContainerProperties?: ContainerProperties;
    JobDefinitionName?: Value<string>;
    RetryStrategy?: RetryStrategy;
}
export default class Inner_JobDefinition extends ResourceBase<JobDefinitionProperties> {
    static RetryStrategy: typeof RetryStrategy;
    static Ulimit: typeof Ulimit;
    static MountPoints: typeof MountPoints;
    static LinuxParameters: typeof LinuxParameters;
    static VolumesHost: typeof VolumesHost;
    static Timeout: typeof Timeout;
    static NodeProperties: typeof NodeProperties;
    static Device: typeof Device;
    static NodeRangeProperty: typeof NodeRangeProperty;
    static Environment: typeof Environment;
    static ContainerProperties: typeof ContainerProperties;
    static ResourceRequirement: typeof ResourceRequirement;
    static Volumes: typeof Volumes;
    constructor(properties: JobDefinitionProperties);
}
