import { ITaskWithStatus, Session } from "@zowe/imperative";
import { IWorkArea } from "../../doc/IWorkArea";
/**
 * Functions used for reserve a work area. Called by WorkAreaReserve.Handler
 */
export declare class WorkAreaReserve {
    /**
     * Reserves the first work area that is available in the list
     *
     * @param workAreas
     * @param endevorInstance
     * @param endevorSession
     * @param task
     * @throws an error if none is available
     * @returns the work area that was reserved
     */
    static reserveFirstAvailableWorkArea(workAreas: IWorkArea[], endevorInstance: string, endevorSession: Session, task?: ITaskWithStatus): Promise<IWorkArea>;
    /**
     * Reserves a work area from
     *
     * @param workArea work area to reserve
     * @param endevorInstance endevor instance
     * @param endevorSession endevor session
     * @param throwErrorIfFail if true, it throws ImperativeError to stop the command execution
     * @returns the work area if it was reserved successfully
     */
    static reserveWorkArea(workArea: IWorkArea, endevorInstance: string, endevorSession: Session, throwErrorIfFail?: boolean): Promise<IWorkArea>;
}
