export interface CommandParameterValue {
    /** An attribute of type String. For example: "S": "Hello" */
    S?: string;
    /** An attribute of type Boolean. For example: "BOOL": true */
    B?: boolean;
    /** An attribute of type Integer (Thirty-Two Bits). */
    I?: number;
    /** An attribute of type Long. */
    L?: number;
    /** An attribute of type Double (Sixty-Four Bits). */
    D?: number;
    /** An attribute of type Binary. */
    BIN?: string;
    /** An attribute of type Unsigned Long. */
    UL?: string;
}
export interface DescribeJobExecutionInput {
    /** The unique identifier assigned to this job when it was created. */
    jobId: string;
    /** The thing name associated with the device the job execution is running on. */
    thingName: string;
    /** Optional. A number that identifies a particular job execution on a particular device. If not specified, the latest job execution is returned. */
    executionNumber?: number;
    /** Optional. Unless set to false, the response contains the job document. The default is true. */
    includeJobDocument?: boolean;
}
export interface GetPendingJobExecutionsInput {
    /** The name of the thing that is executing the job. */
    thingName: string;
}
export interface StartCommandExecutionInput {
    /** The Amazon Resource Number (ARN) of the command. For example, arn:aws:iot:::command/ */
    commandArn: string;
    /** The Amazon Resource Number (ARN) of the device where the command execution is occurring. */
    targetArn: string;
    /** The client token is used to implement idempotency. It ensures that the request completes no more than one time. If you retry a request with the same token and the same parameters, the request will com */
    clientToken?: string;
    /** Specifies the amount of time in second the device has to finish the command execution. A timer is started as soon as the command execution is created. If the command execution status is not set to ano */
    executionTimeoutSeconds?: number;
    /** A list of parameters that are required by the StartCommandExecution API when performing the command on a device. */
    parameters?: Record<string, CommandParameterValue>;
}
export interface StartNextPendingJobExecutionInput {
    /** The name of the thing associated with the device. */
    thingName: string;
    /** A collection of name/value pairs that describe the status of the job execution. If not specified, the statusDetails are unchanged. The maximum length of the value in the name/value pair is 1,024 chara */
    statusDetails?: Record<string, string>;
    /** Specifies the amount of time this device has to finish execution of this job. If the job execution status is not set to a terminal state before this timer expires, or before the timer is reset (by cal */
    stepTimeoutInMinutes?: number;
}
export interface UpdateJobExecutionInput {
    /** The unique identifier assigned to this job when it was created. */
    jobId: string;
    /** The new status for the job execution (IN_PROGRESS, FAILED, SUCCESS, or REJECTED). This must be specified on every update. */
    status: 'QUEUED' | 'IN_PROGRESS' | 'SUCCEEDED' | 'FAILED' | 'TIMED_OUT' | 'REJECTED' | 'REMOVED' | 'CANCELED';
    /** The name of the thing associated with the device. */
    thingName: string;
    /** Optional. A number that identifies a particular job execution on a particular device. */
    executionNumber?: number;
    /** Optional. The expected current version of the job execution. Each time you update the job execution, its version is incremented. If the version of the job execution stored in Jobs does not match, the  */
    expectedVersion?: number;
    /** Optional. When set to true, the response contains the job document. The default is false. */
    includeJobDocument?: boolean;
    /** Optional. When included and set to true, the response contains the JobExecutionState data. The default is false. */
    includeJobExecutionState?: boolean;
    /** Optional. A collection of name/value pairs that describe the status of the job execution. If not specified, the statusDetails are unchanged. The maximum length of the value in the name/value pair is 1 */
    statusDetails?: Record<string, string>;
    /** Specifies the amount of time this device has to finish execution of this job. If the job execution status is not set to a terminal state before this timer expires, or before the timer is reset (by aga */
    stepTimeoutInMinutes?: number;
}
/** IoT Jobs Data Plane service binding for Step Functions SDK integrations. */
export declare class IoTJobsDataPlane {
    constructor();
    describeJobExecution<T>(params: DescribeJobExecutionInput): Promise<T>;
    getPendingJobExecutions<T>(params: GetPendingJobExecutionsInput): Promise<T>;
    startCommandExecution<T>(params: StartCommandExecutionInput): Promise<T>;
    startNextPendingJobExecution<T>(params: StartNextPendingJobExecutionInput): Promise<T>;
    updateJobExecution<T>(params: UpdateJobExecutionInput): Promise<T>;
}
//# sourceMappingURL=IoTJobsDataPlane.d.ts.map