import * as core from "@terrascript/core";
export interface TimeoutArgs extends core.SchemaArgs {
    attemptDurationSeconds?: number | core.NumberOut;
}
export declare class Timeout extends core.Schema<TimeoutArgs> {
    attemptDurationSeconds?: number | core.NumberOut;
}
export interface EvaluateOnExitArgs extends core.SchemaArgs {
    action: string | core.StringOut;
    onExitCode?: string | core.StringOut;
    onReason?: string | core.StringOut;
    onStatusReason?: string | core.StringOut;
}
export declare class EvaluateOnExit extends core.Schema<EvaluateOnExitArgs> {
    action: string | core.StringOut;
    onExitCode?: string | core.StringOut;
    onReason?: string | core.StringOut;
    onStatusReason?: string | core.StringOut;
}
export interface RetryStrategyArgs extends core.SchemaArgs {
    attempts?: number | core.NumberOut;
    evaluateOnExit?: core.Array<EvaluateOnExit> | core.ArrayOut<EvaluateOnExit>;
}
export declare class RetryStrategy extends core.Schema<RetryStrategyArgs> {
    attempts?: number | core.NumberOut;
    evaluateOnExit?: core.Array<EvaluateOnExit> | core.ArrayOut<EvaluateOnExit>;
}
export interface JobDefinitionArgs extends core.ResourceArgs {
    containerProperties?: string | core.StringOut;
    name: string | core.StringOut;
    parameters?: core.Map<string, string> | core.MapOut<core.StringOut>;
    platformCapabilities?: core.Array<string> | core.ArrayOut<core.StringOut>;
    propagateTags?: boolean | core.BooleanOut;
    retryStrategy?: RetryStrategy;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    timeout?: Timeout;
    type: string | core.StringOut;
}
export declare class JobDefinition extends core.Resource<JobDefinitionArgs> {
    arn: string | core.StringOut;
    containerProperties?: string | core.StringOut;
    id: string | core.StringOut;
    name: string | core.StringOut;
    parameters?: core.Map<string, string> | core.MapOut<core.StringOut>;
    platformCapabilities?: core.Array<string> | core.ArrayOut<core.StringOut>;
    propagateTags?: boolean | core.BooleanOut;
    retryStrategy?: RetryStrategy;
    revision: number | core.NumberOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    timeout?: Timeout;
    type: string | core.StringOut;
    constructor(name: string, args?: JobDefinitionArgs);
    getNamespace(): string;
}
//# sourceMappingURL=job_definition.d.ts.map