import { Theme } from '@mui/material/styles';
import { ClientAnalytics } from '@zeniai/client-analytics';
import { AuthParams, CannedResponse, EditTaskLocalData, FetchState, FilePayload, ID, LoggedInUser, PriorityCodeType, Tag, TagViewSelectorView, TaskDetailSelectorView, TaskStatusCodeType, UserGroup } from '@zeniai/client-epic-state';
import { UserMultiSelectFieldValue } from '../cockpit/common/userMultiSelect/UserMultiSelectField';
import { RequestToOpenThreadType } from '../commentsAndNotes/utils/ThreadsProvider';
import { MultiSelectFieldValue } from '../formElements/creatableMultiSelectField/CreatableMultiSelectField';
import { RecurringViewType } from '../formElements/recurringView/RecurringView';
import { SingleSelectPickerFieldValue } from '../formElements/singleSelectPickerField/SingleSelectPickerField';
import { SingleSelectFieldValue } from '../singleSelect/SingleSelectField';
import { AttachmentFormData } from './AllTaskAttachments';
import { timeSpentKey } from './taskManagementFormConstants';
type TaskAttributeCodeType = TaskStatusCodeType | PriorityCodeType | ID;
declare const name = "name";
declare const description = "description";
declare const status = "status";
declare const assignee = "assignee";
declare const dueDate = "dueDate";
declare const priority = "priority";
declare const tag = "tag";
declare const fileIds = "fileIds";
declare const taskSectionId = "taskDetail";
declare const taskType = "taskType";
declare const recurringView = "recurringView";
declare const visibility = "visibility";
export interface TaskDetailFormData {
    [assignee]: UserMultiSelectFieldValue;
    [description]: string;
    [fileIds]: AttachmentFormData[];
    [name]: string;
    [priority]: SingleSelectPickerFieldValue;
    [status]: SingleSelectPickerFieldValue;
    [tag]: MultiSelectFieldValue;
    [taskType]: SingleSelectFieldValue;
    [timeSpentKey]: string;
    [dueDate]?: Date;
    [recurringView]?: RecurringViewType;
    [visibility]?: string;
}
type FormDataKeys = keyof TaskDetailFormData;
export interface FormData {
    [taskSectionId]: TaskDetailFormData;
}
declare const uniqueName: (sectionId: string, key: FormDataKeys) => `${string}.fileIds` | `${string}.name` | `${string}.status` | `${string}.description` | `${string}.priority` | `${string}.dueDate` | `${string}.assignee` | `${string}.tag` | `${string}.timeSpent` | `${string}.taskType` | `${string}.recurringView` | `${string}.visibility`;
export type FormDataKeyUniqueNames = ReturnType<typeof uniqueName>;
export declare const uniqueFormName: (sectionId: ID) => `${string}_form`;
export interface TaskDetailPageProps {
    analytics: ClientAnalytics;
    authParams: AuthParams;
    companyId: ID;
    companyName: string;
    currentUrl: string;
    filesEndPoint: string;
    isNewClicked: boolean;
    loggedInUser: LoggedInUser;
    tagListView: TagViewSelectorView;
    taskDetailSelectorView: TaskDetailSelectorView;
    userGroupList: UserGroup[];
    cannedResponses?: CannedResponse[];
    initialOpenThreadRequest?: RequestToOpenThreadType;
    isCannedResponsesLoading?: boolean;
    isTaskCannedResponsesEnabled?: boolean;
    isTaskGroupAssigneesEnabled?: boolean;
    isTaskRecurringParentEnabled?: boolean;
    isTaskSnoozeEnabled?: boolean;
    isTaskVisibilityEnabled?: boolean;
    isZeniUser?: boolean;
    recurringSourceTaskUrl?: string;
    taskDetailFetchState?: FetchState;
    taskGroupList?: Array<{
        id: ID;
        isDefault: boolean;
        name: string;
    }>;
    taskGroupName?: string;
    taskId?: ID;
    handleZeniLogoClick: () => void;
    onArchiveTaskClick: () => void;
    onCreateTagClick: (tagName: string) => void;
    onDeleteFile: (fileId: ID) => void;
    onDeleteTagClick: (tagId: ID) => void;
    onDeleteTaskClick: () => void;
    onDismissClick: () => void;
    onEditFileName: (fileId: ID, name: string) => void;
    onReloadTaskDetailPage: () => void;
    onSaveChangesToLocalStore: (localData: EditTaskLocalData) => void;
    onSaveDetailClick: (selectedTaskGroupId?: ID) => void;
    onSnoozeTask: (taskId: ID, snoozedUntil: string) => void;
    onUnsnoozeTask: (taskId: ID) => void;
    updateFilesEntity: (files: FilePayload[]) => void;
    onFetchCannedResponses?: () => void;
    onManageTemplatesClick?: () => void;
}
export declare const getLabelColor: (value: TaskAttributeCodeType, theme?: Theme) => string;
export declare const getRichLabel: (value: TaskAttributeCodeType, theme: Theme) => import("react/jsx-runtime").JSX.Element;
export declare const getTagList: (tagList: Tag[]) => {
    label: string;
    value: string;
    isDeleted: boolean | undefined;
}[];
declare const TaskDetailPage: ({ taskDetailSelectorView, companyName, companyId, loggedInUser, analytics, isNewClicked, filesEndPoint, authParams, currentUrl, taskId, taskGroupList, taskGroupName, taskDetailFetchState, onSaveChangesToLocalStore, onSaveDetailClick, onArchiveTaskClick, onSnoozeTask, onUnsnoozeTask, onDismissClick, handleZeniLogoClick: _handleZeniLogoClick, updateFilesEntity, onDeleteFile, onEditFileName, onDeleteTaskClick, onReloadTaskDetailPage, tagListView, userGroupList, onCreateTagClick, onDeleteTagClick, cannedResponses, initialOpenThreadRequest, isCannedResponsesLoading, isTaskCannedResponsesEnabled, isTaskGroupAssigneesEnabled, isTaskRecurringParentEnabled, isTaskSnoozeEnabled, isTaskVisibilityEnabled, isZeniUser, onFetchCannedResponses, onManageTemplatesClick, recurringSourceTaskUrl, }: TaskDetailPageProps) => import("react/jsx-runtime").JSX.Element;
export default TaskDetailPage;
