import { ApiClient } from '../../client/index.js';
import { AddDeliverableParams, CloseDeliverableParams, CreateProjectParams, GetDeliverableParams, GetProjectParams, ListDeliverablesParams, UploadProofParams } from './requests.js';
import { AddDeliverableResult, CreateProjectResult, GetDeliverableResult, GetProjectResult, ListDeliverablesResult, GetSupportingFilesResult, UploadProofResult } from './responses.js';

declare class WorkflowApi {
    private _client;
    /**
     * Create an instance of the WorkflowApi class
     *
     * Workflow objects represent projects and deliverables stored in the Acquia Workflow system. The API allows you to retrieve, create, delete, and close deliverables and projects.
     *
     * @param client Provide an instance of ApiClient.
     */
    constructor(client: ApiClient);
    /**
     * Add a deliverable to a project
     * @param params Information about the request
     * @returns Promise containing information about the added deliverable
     * @see {@link https://widenv2.docs.apiary.io/#reference/workflow-app-projects/projects/add-deliverable-to-project}
     */
    addDeliverable(params: AddDeliverableParams): Promise<AddDeliverableResult>;
    /**
     * Close the deliverable. Optionally, provide a `filename` and `upload_profile` to move the deliverable over to Assets
     * @param params Information about the request
     * @returns Promise containing no information
     * @see {@link https://widenv2.docs.apiary.io/#reference/workflow-app-projects/deliverables/close-deliverable}
     */
    closeDeliverable(params: CloseDeliverableParams): Promise<void>;
    /**
     * Create a new project
     * @param params Information about the request
     * @returns Promise containing the new project's ID
     * @see {@link https://widenv2.docs.apiary.io/#reference/workflow-app-projects/projects/create-new-project}
     */
    createProject(params: CreateProjectParams): Promise<CreateProjectResult>;
    /**
     * Delete a deliverable
     * @param project_id Project ID
     * @param deliverable_id Deliverable ID
     * @returns Promise containing no information
     * @see {@link https://widenv2.docs.apiary.io/#reference/workflow-app-projects/deliverables/delete-deliverable}
     */
    deleteDeliverable(project_id: string, deliverable_id: string): Promise<void>;
    /**
     * Delete a project
     * @param project_id Project ID
     * @returns Promise containing no information
     * @see {@link https://widenv2.docs.apiary.io/#reference/workflow-app-projects/projects/delete-project}
     */
    deleteProject(project_id: string): Promise<void>;
    /**
     * Retrieve information about a deliverable
     * @param params Information about the request
     * @returns Promise containing information about the deliverable
     * @see {@link https://widenv2.docs.apiary.io/#reference/workflow-app-projects/deliverables/retrieve-deliverable-by-id}
     */
    getDeliverable(params: GetDeliverableParams): Promise<GetDeliverableResult>;
    /**
     * Retrieve information about a project
     * @param params Information about the request
     * @returns Promise containing information about the deliverable
     * @see {@link https://widenv2.docs.apiary.io/#reference/workflow-app-projects/projects/retrieve-by-project-id}
     */
    getProject(params: GetProjectParams): Promise<GetProjectResult>;
    /**
     * Retrieve all deliverables for a project
     * @param params Information about the request
     * @returns Promise containing a list of deliverables
     * @see {@link https://widenv2.docs.apiary.io/#reference/workflow-app-projects/deliverables/retrieve-all-project-deliverables}
     */
    listDeliverables(params: ListDeliverablesParams): Promise<ListDeliverablesResult>;
    /**
     * Retrieve all supporting files for a project
     * @param project_id Project ID
     * @returns Promise containing a list of supporting files
     * @see {@link https://widenv2.docs.apiary.io/#reference/workflow-app-projects/projects/retrieve-supporting-files}
     */
    listSupportingFiles(project_id: string): Promise<GetSupportingFilesResult>;
    /**
     * Upload proof to a deliverable
     * @param params Information about the request
     * @returns Promise containing information about the deliverable
     */
    uploadProof(params: UploadProofParams): Promise<UploadProofResult>;
}

export { WorkflowApi };
