/**
 * ProjectManager API for TypeScript
 *
 * (c) ProjectManager.com, Inc.
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 *
 * @author     ProjectManager.com <support@projectmanager.com>
 * @copyright  ProjectManager.com, Inc.
 * @link       https://github.com/projectmgr/projectmanager-sdk-typescript
 */
import { ProjectManagerClient } from "../index.js";
import { AstroResult } from "../index.js";
import { TaskStatusDto } from "../index.js";
import { TaskStatusCreateDto } from "../index.js";
import { TaskStatusUpdateDto } from "../index.js";
export declare class TaskStatusClient {
    private readonly client;
    /**
     * Internal constructor for this client library
     */
    constructor(client: ProjectManagerClient);
    /**
     * Retrieves the list of TaskStatus levels for a specific Project within your Workspace.
     *
     * A TaskStatus is a named status level used by your business to determine how to measure the
     * progress of Tasks.  You can define your own named status levels that are appropriate for
     * your business and determine which status levels are considered done.
     *
     * @param projectId The unique identifier of the Project to retrieve TaskStatuses
     */
    retrieveTaskStatuses(projectId: string): Promise<AstroResult<TaskStatusDto[]>>;
    /**
     * Creates a new TaskStatus level for a specific Project within your Workspace.
     *
     * A TaskStatus is a named status level used by your business to determine how to measure the
     * progress of Tasks.  You can define your own named status levels that are appropriate for
     * your business.
     *
     * @param projectId The unique identifier of the Project for the new TaskStatus
     * @param body Information about the new TaskStatus level to create within this Project
     */
    createTaskStatus(projectId: string, body: TaskStatusCreateDto): Promise<AstroResult<TaskStatusDto>>;
    /**
     * Updates an existing TaskStatus level for a specific Project within your Workspace.
     *
     * A TaskStatus is a named status level used by your business to determine how to measure the
     * progress of Tasks.  You can define your own named status levels that are appropriate for
     * your business.
     *
     * @param projectId The unique identifier of the Project for the new TaskStatus
     * @param body Information about the existing TaskStatus level to update within this Project
     */
    updateTaskStatus(projectId: string, body: TaskStatusUpdateDto): Promise<AstroResult<TaskStatusDto>>;
    /**
     * The endpoint is used to delete a TaskStatus.
     *
     * You will not be able to delete a TaskStatus if there are tasks that have been assigned to this status level
     * or if the TaskStatus is the default status level.
     *
     * @param projectId The unique identifier of the Project for the TaskStatus level to delete
     * @param taskStatusId The Id of the TaskStatus level to be removed.
     */
    deleteTaskStatus(projectId: string, taskStatusId: string): Promise<AstroResult<object>>;
}
