import { EventEmitter, Injector, OnInit } from '@angular/core';
import { ContextMenu } from 'tn-custom-primeng/contextmenu';
import { ApplicationContextService } from '../../../app-context/application-context.service';
import { ComponentContextService } from '../../../app-context/component-context.service';
import { CrudListSetting, DialogModel } from '../../../classes/form-schema';
import { WorkflowSettingNew } from '../../../classes/workflow-schema';
import { CongViecService } from '../../../congviec/congviec/services/congviec.service';
import { DmLoaiCongViecService } from '../../../congviec/dm-loai-congviec/services/dm-loai-congviec.service';
import { ResponseResult } from '../../../models/response-result';
import { CrudService } from '../../../services/crud.service';
import { NotifierService } from '../../../services/notifier.service';
import { UserService } from '../../../services/user.service';
import { WfAction } from '../models/models';
import { WorkflowPermissionDetailService } from '../services/workflow-permission-detail.service';
export declare class Button {
    label: string;
    icon?: string;
    iconPos?: string;
    loading?: boolean;
    loadingIcon: string;
    command?: Function;
}
export declare class WorkflowButtonComponent implements OnInit {
    private _notifierService;
    private _injector;
    private _congViecService;
    private _dmLoaiCongViecService;
    private _appContextService;
    private _crudService;
    private _workflowPermissionDetailService;
    private _userService;
    contextMenu: ContextMenu;
    setting: CrudListSetting;
    idModel: string;
    onProcessedWorkflow: EventEmitter<any>;
    onRollbackedWorkflow: EventEmitter<any>;
    onChangedStatusWorkflow: EventEmitter<any>;
    workflowButtons: Button[];
    currentItem: any;
    sourceIcon: any;
    showingActionWorkflow: boolean;
    rootContext: ComponentContextService;
    startWorkflowModel: DialogModel;
    processWorkflowModel: DialogModel;
    choYKienModel: DialogModel;
    workflowSettingModel: DialogModel;
    workflowHistoryModel: DialogModel;
    permissionSharingModel: DialogModel;
    permissionListModel: DialogModel;
    congViecModel: DialogModel;
    detailTaskModel: DialogModel;
    shareLinkModel: DialogModel;
    attachedTaskModel: DialogModel;
    constructor(_notifierService: NotifierService, _injector: Injector, _congViecService: CongViecService, _dmLoaiCongViecService: DmLoaiCongViecService, _appContextService: ApplicationContextService, _crudService: CrudService, _workflowPermissionDetailService: WorkflowPermissionDetailService, _userService: UserService);
    ngOnInit(): void;
    showActionWorkflow(): Promise<void>;
    getButtonContext(rowData: any): Promise<any[]>;
    getActionWorkflow(rowData: any): Promise<any[] | void>;
    getItemWorkflowSetting(setting: CrudListSetting, rowData: any): Promise<void | WorkflowSettingNew>;
    getActionWorkflowByTask(rowData: any): Promise<any[] | void>;
    private _getActionWorkflowBase;
    viewTaskDetail(rowData: any): Promise<void>;
    rollbackWorkflow(crudListSetting: CrudListSetting, rowData: any): void;
    viewHistoryWorkflow(crudListSetting: CrudListSetting, rowData: number): Promise<void>;
    handleHideHistoryWorkflow(): void;
    processWorkflow(crudListSetting: CrudListSetting, itemWorkflowSetting: any, workflowAction: WfAction): Promise<void>;
    showFormChoYKien(crudListSetting: CrudListSetting, rowData: any): Promise<void>;
    handleProcessedWorkflowBase(): void;
    showWaitBox(message?: string): void;
    hideWaitBox(message?: string): void;
    handleResponse(res: ResponseResult, message?: string, callBack?: Function, callBackError?: Function): void;
    handleResponseWithWaitBox(res: ResponseResult, message?: string, callBack?: Function, callBackError?: Function): void;
    private newFilter;
}
//# sourceMappingURL=workflow-button.component.d.ts.map