/**
 * 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 { ProjectChargeCodeDto } from "../index.js";
import { ProjectChargeCodeCreateDto } from "../index.js";
import { ProjectChargeCodeUpdateDto } from "../index.js";
export declare class ProjectChargeCodeClient {
    private readonly client;
    /**
     * Internal constructor for this client library
     */
    constructor(client: ProjectManagerClient);
    /**
     * Retrieve all defined ChargeCodes that can be used when creating Projects.
     *
     * A ChargeCode is a code used to identify costs within your Projects.  Each ChargeCode has
     * a name and a unique identifier.  ChargeCodes are defined per Workspace and are shared
     * among Projects.
     *
     */
    retrieveChargeCodes(): Promise<AstroResult<ProjectChargeCodeDto[]>>;
    /**
     * Create a project charge code
     *
     * @param body The data to create the charge code
     */
    createProjectChargeCode(body: ProjectChargeCodeCreateDto): Promise<AstroResult<ProjectChargeCodeDto>>;
    /**
     * Update a project charge code
     *
     * @param chargeCodeId The id of the charge code
     * @param body The data to update the charge code
     */
    updateProjectChargeCode(chargeCodeId: string, body: ProjectChargeCodeUpdateDto): Promise<AstroResult<ProjectChargeCodeDto>>;
    /**
     * Delete a project charge code
     *
     * @param chargeCodeId The id of the charge code
     */
    deleteProjectChargeCode(chargeCodeId: string): Promise<AstroResult<object>>;
}
