/**
 * 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 { TaskFieldDto } from "../index.js";
import { ChangeSetStatusDto } from "../index.js";
import { CreateTaskFieldDto } from "../index.js";
import { TaskFieldValueDto } from "../index.js";
import { UpdateTaskFieldValueDto } from "../index.js";
export declare class TaskFieldClient {
    private readonly client;
    /**
     * Internal constructor for this client library
     */
    constructor(client: ProjectManagerClient);
    /**
     * Retrieves all TaskFields defined for a specific Project within your Workspace.
     *
     * A TaskField is a custom field defined within your Workspace for a specific Project.  You can
     * define TaskFields for any integration purpose that is important to your business.  Each
     * TaskField has a data type as well as options in how it is handled.  TaskFields can be edited
     * for each Task inside this Project.
     *
     * @param projectId The unique identifier of the Project to retrieve TaskFields
     */
    retrieveTaskFields(projectId: string): Promise<AstroResult<TaskFieldDto[]>>;
    /**
     * Creates a new TaskField for a specific Project within your Workspace.
     *
     * A TaskField is a custom field defined within your Workspace for a specific Project.  You can
     * define TaskFields for any integration purpose that is important to your business.  Each
     * TaskField has a data type as well as options in how it is handled.  TaskFields can be edited
     * for each Task inside this Project.
     *
     * @param projectId The unique identifier of the Project within which to create this TaskField
     * @param body Information about the TaskField to create
     */
    createTaskField(projectId: string, body: CreateTaskFieldDto): Promise<AstroResult<ChangeSetStatusDto>>;
    /**
     * Retrieve a list of TaskFields that match an [OData formatted query](https://www.odata.org/).
     *
     * A TaskField is a custom field defined within your Workspace for a specific Project.  You can
     * define TaskFields for any integration purpose that is important to your business.  Each
     * TaskField has a data type as well as options in how it is handled.  TaskFields can be edited
     * for each Task inside a Project.
     *
     * @param top The number of records to return
     * @param skip Skips the given number of records and then returns $top records
     * @param filter Filter the expression according to oData queries
     * @param orderby Order collection by this field.
     * @param expand Include related data in the response
     */
    queryTaskFields(top?: number, skip?: number, filter?: string, orderby?: string, expand?: string): Promise<AstroResult<TaskFieldDto[]>>;
    /**
     * Deletes a TaskField for a specific Project within your Workspace.
     *
     * A TaskField is a custom field defined within your Workspace for a specific Project.  You can
     * define TaskFields for any integration purpose that is important to your business.  Each
     * TaskField has a data type as well as options in how it is handled.  TaskFields can be edited
     * for each Task inside this Project.
     *
     * @param projectId The unique identifier of the Project that contains this TaskField
     * @param fieldId The unique identifier of the TaskField to delete
     */
    deleteTaskField(projectId: string, fieldId: string): Promise<AstroResult<object>>;
    /**
     * Retrieves all TaskField values for a particular Task.
     *
     * A TaskField is a custom field defined within your Workspace for a specific Project.  You can
     * define TaskFields for any integration purpose that is important to your business.  Each
     * TaskField has a data type as well as options in how it is handled.  TaskFields can be edited
     * for each Task inside this Project.
     *
     * @param taskId The unique identifier of the Task for which we want TaskField values
     */
    retrieveAllTaskFieldValues(taskId: string): Promise<AstroResult<TaskFieldValueDto[]>>;
    /**
     * Retrieve a list of TaskFieldValues that match an [OData formatted query](https://www.odata.org/).
     *
     * A TaskField is a custom field defined within your Workspace for a specific Project.  You can
     * define TaskFields for any integration purpose that is important to your business.  Each
     * TaskField has a data type as well as options in how it is handled.  TaskFields can be edited
     * for each Task inside this Project.
     *
     * @param top The number of records to return
     * @param skip Skips the given number of records and then returns $top records
     * @param filter Filter the expression according to oData queries
     * @param orderby Order collection by this field.
     * @param expand Include related data in the response
     */
    queryTaskFieldValues(top?: number, skip?: number, filter?: string, orderby?: string, expand?: string): Promise<AstroResult<TaskFieldValueDto[]>>;
    /**
     * Retrieves the current TaskField value for a particular Task and TaskField.
     *
     * A TaskField is a custom field defined within your Workspace for a specific Project.  You can
     * define TaskFields for any integration purpose that is important to your business.  Each
     * TaskField has a data type as well as options in how it is handled.  TaskFields can be edited
     * for each Task inside this Project.
     *
     * @param taskId The unique identifier of the Task of the value to retrieve
     * @param fieldId The unique identifier of the TaskField of the value to retrieve
     */
    retrieveTaskFieldValue(taskId: string, fieldId: string): Promise<AstroResult<TaskFieldValueDto>>;
    /**
     * Replaces the current value of a TaskField for a specific Task within your Workspace.
     *
     * A TaskField is a custom field defined within your Workspace for a specific Project.  You can
     * define TaskFields for any integration purpose that is important to your business.  Each
     * TaskField has a data type as well as options in how it is handled.  TaskFields can be edited
     * for each Task inside this Project.
     *
     * @param taskId The unique identifier of the Task whose value you wish to update
     * @param fieldId The unique identifier of the TaskField whose value you wish to update
     * @param body The new value for this TaskField for this Task
     */
    updateTaskFieldValue(taskId: string, fieldId: string, body: UpdateTaskFieldValueDto): Promise<AstroResult<ChangeSetStatusDto>>;
}
