export interface CancelTaskInput {
    /** The ID of the task that you are attempting to cancel. You can retrieve a task ID by using the ListTasks operation. */
    taskId: string;
}
export interface CreateTaskInput {
    /** The task to be performed. Only one task is executed on a device at a time. */
    command: {
        unlock?: Record<string, any>;
    } | {
        reboot?: Record<string, any>;
    };
    /** A list of managed device IDs. */
    targets: string[];
    /** A token ensuring that the action is called only once with the specified details. */
    clientToken?: string;
    /** A description of the task and its targets. */
    description?: string;
    /** Optional metadata that you assign to a resource. You can use tags to categorize a resource in different ways, such as by purpose, owner, or environment. */
    tags?: Record<string, string>;
}
export interface DescribeDeviceInput {
    /** The ID of the device that you are checking the information of. */
    managedDeviceId: string;
}
export interface DescribeDeviceEc2InstancesInput {
    /** A list of instance IDs associated with the managed device. */
    instanceIds: string[];
    /** The ID of the managed device. */
    managedDeviceId: string;
}
export interface DescribeExecutionInput {
    /** The ID of the managed device. */
    managedDeviceId: string;
    /** The ID of the task that the action is describing. */
    taskId: string;
}
export interface DescribeTaskInput {
    /** The ID of the task to be described. */
    taskId: string;
}
export interface ListDeviceResourcesInput {
    /** The ID of the managed device that you are listing the resources of. */
    managedDeviceId: string;
    /** The maximum number of resources per page. */
    maxResults?: number;
    /** A pagination token to continue to the next page of results. */
    nextToken?: string;
    /** A structure used to filter the results by type of resource. */
    type?: string;
}
export interface ListDevicesInput {
    /** The ID of the job used to order the device. */
    jobId?: string;
    /** The maximum number of devices to list per page. */
    maxResults?: number;
    /** A pagination token to continue to the next page of results. */
    nextToken?: string;
}
export interface ListExecutionsInput {
    /** The ID of the task. */
    taskId: string;
    /** The maximum number of tasks to list per page. */
    maxResults?: number;
    /** A pagination token to continue to the next page of tasks. */
    nextToken?: string;
    /** A structure used to filter the tasks by their current state. */
    state?: 'QUEUED' | 'IN_PROGRESS' | 'CANCELED' | 'FAILED' | 'SUCCEEDED' | 'REJECTED' | 'TIMED_OUT';
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the device or task. */
    resourceArn: string;
}
export interface ListTasksInput {
    /** The maximum number of tasks per page. */
    maxResults?: number;
    /** A pagination token to continue to the next page of tasks. */
    nextToken?: string;
    /** A structure used to filter the list of tasks. */
    state?: 'IN_PROGRESS' | 'CANCELED' | 'COMPLETED';
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the device or task. */
    resourceArn: string;
    /** Optional metadata that you assign to a resource. You can use tags to categorize a resource in different ways, such as by purpose, owner, or environment. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the device or task. */
    resourceArn: string;
    /** Optional metadata that you assign to a resource. You can use tags to categorize a resource in different ways, such as by purpose, owner, or environment. */
    tagKeys: string[];
}
/** Snow Device Management service binding for Step Functions SDK integrations. */
export declare class SnowDeviceManagement {
    constructor();
    cancelTask<T>(params: CancelTaskInput): Promise<T>;
    createTask<T>(params: CreateTaskInput): Promise<T>;
    describeDevice<T>(params: DescribeDeviceInput): Promise<T>;
    describeDeviceEc2Instances<T>(params: DescribeDeviceEc2InstancesInput): Promise<T>;
    describeExecution<T>(params: DescribeExecutionInput): Promise<T>;
    describeTask<T>(params: DescribeTaskInput): Promise<T>;
    listDeviceResources<T>(params: ListDeviceResourcesInput): Promise<T>;
    listDevices<T>(params: ListDevicesInput): Promise<T>;
    listExecutions<T>(params: ListExecutionsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listTasks<T>(params: ListTasksInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
}
//# sourceMappingURL=SnowDeviceManagement.d.ts.map