import { ClientAnalytics } from '@zeniai/client-analytics';
import { FetchState, ID, SnackbarMessageConfig, SortOrder, SpendManagementFiltersType, TagViewSelectorView, Task, TaskGroupKey, TaskListLocalData, TaskListSelectorView, TaskListTab, TaskListViewSortKey } from '@zeniai/client-epic-state';
import { UserMultiSelectFieldValue } from '../cockpit/common/userMultiSelect/UserMultiSelectField';
import { ZeniDatePickerValue } from '../common/zeniDatePicker/ZeniDatePickerField';
import { MultiSelectFieldValue } from '../formElements/creatableMultiSelectField/CreatableMultiSelectField';
import { SingleSelectPickerFieldValue } from '../formElements/singleSelectPickerField/SingleSelectPickerField';
import { assigneeKey, dueDateKey, groupDataKey, groupNameKey, priorityKey, selectedIdsKey, statusKey, tagKey, taskDataKey, taskManagementTableSectionId, timeSpentKey } from './taskManagementFormConstants';
interface GroupData {
    [groupNameKey]: string;
    [selectedIdsKey]: ID[];
}
interface TaskData {
    [assigneeKey]: UserMultiSelectFieldValue;
    [dueDateKey]: ZeniDatePickerValue;
    [priorityKey]: SingleSelectPickerFieldValue;
    [statusKey]: SingleSelectPickerFieldValue;
    [tagKey]: MultiSelectFieldValue;
    [timeSpentKey]: string;
}
type TasksFormData = Record<ID, TaskData>;
type GroupFormData = Record<ID, GroupData>;
interface TaskManagementTableSectionFormData {
    [groupDataKey]: GroupFormData;
    [taskDataKey]: TasksFormData;
}
export interface FormData {
    [taskManagementTableSectionId]: TaskManagementTableSectionFormData;
}
export declare const uniqueFormName: (sectionId: ID) => `${string}_form`;
export interface TaskManagementPageProps {
    isTaskTemplatesEnabled: boolean;
    tagListView: TagViewSelectorView;
    taskListView: TaskListSelectorView;
    analytics?: ClientAnalytics;
    isAiCfoAccessEnabled?: boolean;
    isTaskBulkResolutionEnabled?: boolean;
    isTaskCannedResponsesEnabled?: boolean;
    isTaskCategorizationEnabled?: boolean;
    isTaskGroupAssigneesEnabled?: boolean;
    isTaskRecurringParentEnabled?: boolean;
    isZeniUser?: boolean;
    taskListFetchState?: FetchState;
    assignGroupToTasks: (taskGroupId: ID) => void;
    bulkUpdateTasks: (taskIds: ID[], updates: Partial<Task>) => void;
    handleCreateGroup: (assignNewGroupToSelectedTasks: boolean) => void;
    handleGroupTemplateClick: (templateId: ID) => void;
    handleGroupTemplateTaskClick: (templateId: ID, taskName: string) => void;
    handleNewTaskInitialization: (taskName: string) => void;
    onAddNewTaskToTaskGroup: (taskGroupId: ID) => void;
    onBackClick: () => void;
    onColumnSortConfigChanged: (sortKey: TaskListViewSortKey, sortOrder: SortOrder) => void;
    onCreateTagClick: (tagName: string, taskId: string) => void;
    onDeleteTaskGroup: (taskGroupId: ID) => void;
    onDragNDrop: (taskId: ID, taskGroupId: ID) => void;
    onFiltersChange: (filters: SpendManagementFiltersType) => void;
    onGroupByFilterChange: (value: TaskGroupKey) => void;
    onNewTaskClick: () => void;
    onParentTaskClick: (id: ID) => void;
    onReloadTasks: () => void;
    onSearchTextChanged: (searchText: string) => void;
    onShowToast: (messageInfo: SnackbarMessageConfig) => void;
    onTabChange: (tab: TaskListTab) => void;
    onTaskGroupNameClick: (id: ID) => void;
    onTaskGroupRename: (taskGroupId: ID, groupName: string) => void;
    onTaskManagementRowClick: (id: ID) => void;
    onTimeSpentUpdate: (task: Task, updates: Partial<Task>) => void;
    resetLocalData: () => void;
    updateLocalData: (localData: TaskListLocalData) => void;
    updateTask: (task: Task, updates: Partial<Task>) => void;
    onAskAiCfoClick?: () => void;
    onQuickResponsesClick?: () => void;
}
declare const TaskManagementPage: ({ taskListView, tagListView, isTaskTemplatesEnabled, taskListFetchState, onCreateTagClick, updateTask, onDragNDrop, onDeleteTaskGroup, updateLocalData, onTaskManagementRowClick, onParentTaskClick, onReloadTasks, onColumnSortConfigChanged, onSearchTextChanged, onTabChange, onBackClick, bulkUpdateTasks, onNewTaskClick, onFiltersChange, resetLocalData, handleCreateGroup, assignGroupToTasks, onAddNewTaskToTaskGroup, onGroupByFilterChange, onTaskGroupRename, analytics, onTimeSpentUpdate, onShowToast, handleGroupTemplateClick, handleGroupTemplateTaskClick, handleNewTaskInitialization, onTaskGroupNameClick, isAiCfoAccessEnabled, isZeniUser, isTaskBulkResolutionEnabled, isTaskCannedResponsesEnabled, isTaskCategorizationEnabled, isTaskGroupAssigneesEnabled, isTaskRecurringParentEnabled, onAskAiCfoClick, onQuickResponsesClick, }: TaskManagementPageProps) => import("react/jsx-runtime").JSX.Element;
export default TaskManagementPage;
