import { User } from "../../core/user/user.types";
import { AxForm } from "../../forms/ax-form";
import { FormType } from "../../forms/page/common/widget-enums";
import { TaskAssetFormObjectDto } from "./task-asset-form-object-dto";
export declare class Task {
    taskId: string;
    assetFormName: string;
    assetFormObject: TaskAssetFormObjectDto;
    assignTo: string;
    assignToId: number;
    assignedBy: string;
    formId: number;
    formObject: AxForm;
    taskType: FormType;
    description: string;
    shortDescription: string;
    availableTo: Array<User>;
    trackingActionVerb: string;
    status: TaskStatus;
    stepType: StepTypes;
    rejectionComments: string;
    isTaskRejected: boolean;
    workFlowName: string;
    created: Date;
    updated: Date;
    constructor(task?: Task);
    /**
     * Create New instance of task
     */
    newTask(): void;
    /**
     * Create instance of task
     * @param task
     */
    task(task: Task): void;
}
/**
 * Task's step types
 */
export declare enum StepTypes {
    fillForm = "fill_form",
    assignTask = "assign_task",
    assignTaskFillForm = "assign_task_fill_form",
    start = "start"
}
/**
 * Task Status type.
 */
export declare enum TaskStatus {
    todo = 0,
    overdue = 8,
    delivered = 1,
    done = 2,
    rejected = 3,
    failed = 4,
    unassigned = 5,
    cancelled = 6,
    due = 7
}
