import * as React from 'react'; export declare type IStatus = 'Expand' | 'CollapseWithoutEdit' | 'CollapseWithEdit'; export declare const TicketFeedbackPluginContext: React.Context; export interface ITicketFeedbackPluginContext { contextProps: ITicketFeedbackPluginProps; contextState: ITicketFeedbackPluginState; onChangeStatus: (val: number) => void; onCloseForm: () => void; onChangeFormModal: (isExpand: boolean) => void; onOpenConfirm: (val: boolean) => void; onCreateTicket: (ticket: ITFTicket) => void; onChangeFileUploadingState: (isUploadAttachFiles: boolean, isAllowUploadFiles: boolean) => void; onUpdateTicket: (ticket: ITFTicket) => void; onHandleSubmitTicket: (ticket: ITFTicket) => void; getCurrentContextTicket: () => ITFTicket; } interface ITicketFeedbackPluginProps { taskDomainName: string; departmentCurrentUserId?: number; departmentCurrentUserName?: string; defaultStatus?: IStatus; callApiCreateDraft?: Function; callApiUpdateDraft?: Function; callApiGetAllCategoryTicket?: Function; callApiDeleteDraft?: Function; callApiGetDraft?: Function; callApiSubmitForm?: Function; callApiUploadAttachFiles?: Function; callApiUploadImgEditor?: Function; callApiGetCategory?: Function; callApiGetDepartmentById: Function; callAPIGetPicsByDepartmentId: Function; } interface ITicketFeedbackPluginState { showStatus?: number; isOpenForm?: boolean; isExpandForm?: boolean; isShowConfirm?: boolean; isSavingDraft?: boolean; isShowHint?: boolean; isShowAfterSubmit?: boolean; isRefresh: boolean; ticket?: ITFTicket; isUploadAttachFiles?: boolean; isAllowUploadFiles?: boolean; categories: ITFCategory[]; isSubmitting?: boolean; } export declare class TicketFeedbackPlugin extends React.Component { constructor(props: any); mounted: boolean; departmentName: string; componentDidMount(): void; componentWillUnmount(): void; private renderIconWithEdit; private renderModalHint; private renderEditInCollapse; private renderCollapsePopup; private renderExpandPopup; private renderFormPopup; private renderDeleteConfirm; private renderModalAfterSubmit; render(): JSX.Element; } interface ITFTicket { id?: string; ticketCategoryId?: string; originalContent?: IResultContent; personInChargeIds?: number[]; handlerIds?: number[]; status?: number; departmentCreating?: IDepartmentInfo; } interface IDepartmentInfo { department_Id?: number; department_Name?: string; } interface IResultContent { content?: string; attachments?: IAttachFile[]; createdAt?: Date; updatedAt?: Date; createdBy?: number; } interface ITFCategory { name?: string; id?: string; description?: string; code?: string; assignees?: ITFUserInfoType[]; picType?: E_TFTicketDefaultPICType; } interface IAttachFile { name?: string; url?: string; size: number; ext: string; } interface ITFUserInfoType { user_Id?: number; user_Name?: string; } declare enum E_TFTicketDefaultPICType { DEFAULT = 1, CUSTOM = 2 } export {};