import { ApiObject, Duration } from 'cdk8s';
import { Construct } from 'constructs';
import * as k8s from './imports/k8s';
import * as workload from './workload';
/**
 * Properties for `Job`.
 */
export interface JobProps extends workload.WorkloadProps {
    /**
     * Specifies the duration the job may be active before the system tries to terminate it.
     *
     * @default - If unset, then there is no deadline.
     */
    readonly activeDeadline?: Duration;
    /**
     * Specifies the number of retries before marking this job failed.
     *
     * @default - If not set, system defaults to 6.
     */
    readonly backoffLimit?: number;
    /**
     * Limits the lifetime of a Job that has finished execution (either Complete
     * or Failed). If this field is set, after the Job finishes, it is eligible to
     * be automatically deleted. When the Job is being deleted, its lifecycle
     * guarantees (e.g. finalizers) will be honored. If this field is set to zero,
     * the Job becomes eligible to be deleted immediately after it finishes. This
     * field is alpha-level and is only honored by servers that enable the
     * `TTLAfterFinished` feature.
     *
     * @default - If this field is unset, the Job won't be automatically deleted.
     */
    readonly ttlAfterFinished?: Duration;
}
/**
 * A Job creates one or more Pods and ensures that a specified number of them successfully terminate. As pods successfully complete,
 * the Job tracks the successful completions. When a specified number of successful completions is reached, the task (ie, Job) is complete.
 * Deleting a Job will clean up the Pods it created. A simple case is to create one Job object in order to reliably run one Pod to completion.
 * The Job object will start a new Pod if the first Pod fails or is deleted (for example due to a node hardware failure or a node reboot).
 * You can also use a Job to run multiple Pods in parallel.
 */
export declare class Job extends workload.Workload {
    /**
     * Duration before job is terminated. If undefined, there is no deadline.
     */
    readonly activeDeadline?: Duration;
    /**
     * Number of retries before marking failed.
     */
    readonly backoffLimit?: number;
    /**
     * TTL before the job is deleted after it is finished.
     */
    readonly ttlAfterFinished?: Duration;
    /**
     * @see base.Resource.apiObject
     */
    protected readonly apiObject: ApiObject;
    readonly resourceType = "jobs";
    constructor(scope: Construct, id: string, props?: JobProps);
    /**
     * @internal
     */
    _toKube(): k8s.JobSpec;
}
