@codingfactory/task-engine-client 0.1.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/components/dashboard/TaskWorkloadPanel.vue.d.ts +13 -0
  2. package/dist/components/index.d.ts +11 -0
  3. package/dist/components/pages/TaskDashboardPage.vue.d.ts +11 -0
  4. package/dist/components/pages/TaskDetailPage.vue.d.ts +13 -0
  5. package/dist/components/pages/TaskListPage.vue.d.ts +12 -0
  6. package/dist/components/pages/TaskRecurringPage.vue.d.ts +12 -0
  7. package/dist/components/pages/index.d.ts +4 -0
  8. package/dist/components/recurrence/RecurringTemplateForm.vue.d.ts +4 -0
  9. package/dist/components/recurrence/RecurringTemplateList.vue.d.ts +2 -2
  10. package/dist/components/shared/TaskAssigneePicker.vue.d.ts +30 -0
  11. package/dist/components/shared/TaskConfirmDialog.vue.d.ts +22 -0
  12. package/dist/components/shared/TaskDeadlineBadge.vue.d.ts +20 -0
  13. package/dist/components/shared/TaskDeadlineField.vue.d.ts +21 -0
  14. package/dist/components/shared/TaskImportExportPanel.vue.d.ts +15 -0
  15. package/dist/components/shared/TaskNotificationToast.vue.d.ts +1 -1
  16. package/dist/components/shared/TaskQuickCreate.vue.d.ts +1 -0
  17. package/dist/components/shared/TaskRolePicker.vue.d.ts +22 -0
  18. package/dist/components/task/TaskDetail.vue.d.ts +24 -1
  19. package/dist/components/task/TaskTimeTracker.vue.d.ts +28 -0
  20. package/dist/components/workflows/WorkflowForm.vue.d.ts +16 -0
  21. package/dist/components/workflows/WorkflowList.vue.d.ts +34 -0
  22. package/dist/components/workflows/WorkflowLogs.vue.d.ts +21 -0
  23. package/dist/composables/index.d.ts +2 -0
  24. package/dist/composables/useRecurringTemplates.d.ts +114 -0
  25. package/dist/composables/useTaskDetail.d.ts +42 -1
  26. package/dist/composables/useTaskWorkflows.d.ts +133 -0
  27. package/dist/index.cjs +1 -1
  28. package/dist/index.d.ts +1 -1
  29. package/dist/index.js +7129 -3222
  30. package/dist/stores/index.d.ts +1 -0
  31. package/dist/stores/taskStore.d.ts +300 -3
  32. package/dist/stores/taskWorkflowStore.d.ts +836 -0
  33. package/dist/task-engine-client.css +1 -1
  34. package/dist/types/index.d.ts +261 -0
  35. package/dist/utils/index.d.ts +1 -1
  36. package/dist/utils/taskDisplay.d.ts +7 -1
  37. package/package.json +1 -1
@@ -1,2 +1,3 @@
1
1
  export { useTaskListStore } from './taskListStore';
2
2
  export { useTaskStore } from './taskStore';
3
+ export { useTaskWorkflowStore } from './taskWorkflowStore';
@@ -1,4 +1,4 @@
1
- import type { EntityTaskSummary, PaginationMeta, Task, TaskAssignedBroadcastPayload, TaskBulkAction, TaskBulkActionResult, TaskChecklistToggledBroadcastPayload, TaskCommentAddedBroadcastPayload, TaskCommentPayload, TaskCompletedBroadcastPayload, TaskCreatedBroadcastPayload, TaskDetail, TaskEscalationSnoozePayload, TaskFilters, TaskMutationPayload, TaskPriority, TaskSavedFilter, TaskStatus, TaskStatusChangedBroadcastPayload, TaskUpdatePayload, TaskUpdatedBroadcastPayload, TemplateInstantiationPayload } from '@/types';
1
+ import type { EntityTaskSummary, PaginationMeta, Task, TaskAssignedBroadcastPayload, TaskBulkAction, TaskBulkActionResult, TaskChecklistToggledBroadcastPayload, TaskCommentAddedBroadcastPayload, TaskCommentPayload, TaskCompletedBroadcastPayload, TaskCreatedBroadcastPayload, TaskDetail, TaskEscalationSnoozePayload, TaskFilters, TaskImportResult, TaskManualTimeEntryPayload, TaskMutationPayload, TaskPriority, TaskSavedFilter, TaskStatus, TaskTimeEntry, TaskStatusChangedBroadcastPayload, TaskUpdatePayload, TaskUpdatedBroadcastPayload, TemplateInstantiationPayload } from '@/types';
2
2
  export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/tasks", Pick<{
3
3
  tasks: import("vue").Ref<{
4
4
  id: string;
@@ -52,6 +52,7 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
52
52
  subtasks_complete?: boolean;
53
53
  custom_field_required?: string[];
54
54
  } | null;
55
+ time_tracked_minutes?: number | null;
55
56
  tags: {
56
57
  id: string;
57
58
  name: string;
@@ -121,6 +122,7 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
121
122
  subtasks_complete?: boolean;
122
123
  custom_field_required?: string[];
123
124
  } | null;
125
+ time_tracked_minutes?: number | null;
124
126
  tags: {
125
127
  id: string;
126
128
  name: string;
@@ -168,6 +170,24 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
168
170
  position: number;
169
171
  template_item_id?: string | null;
170
172
  }[];
173
+ time_entries: {
174
+ id: string;
175
+ task_id: string;
176
+ user_id: string;
177
+ user: {
178
+ id: string | number;
179
+ name: string;
180
+ avatar_url?: string;
181
+ } | null;
182
+ started_at: string | null;
183
+ stopped_at: string | null;
184
+ duration_minutes: number | null;
185
+ description: string | null;
186
+ is_manual: boolean;
187
+ is_running: boolean;
188
+ created_at: string | null;
189
+ updated_at: string | null;
190
+ }[];
171
191
  watchers: {
172
192
  id: string | number;
173
193
  name: string;
@@ -310,6 +330,7 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
310
330
  subtasks_complete?: boolean;
311
331
  custom_field_required?: string[];
312
332
  } | null;
333
+ time_tracked_minutes?: number | null;
313
334
  tags: {
314
335
  id: string;
315
336
  name: string;
@@ -356,6 +377,24 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
356
377
  position: number;
357
378
  template_item_id?: string | null;
358
379
  }[];
380
+ time_entries: {
381
+ id: string;
382
+ task_id: string;
383
+ user_id: string;
384
+ user: {
385
+ id: string | number;
386
+ name: string;
387
+ avatar_url?: string;
388
+ } | null;
389
+ started_at: string | null;
390
+ stopped_at: string | null;
391
+ duration_minutes: number | null;
392
+ description: string | null;
393
+ is_manual: boolean;
394
+ is_running: boolean;
395
+ created_at: string | null;
396
+ updated_at: string | null;
397
+ }[];
359
398
  watchers: {
360
399
  id: string | number;
361
400
  name: string;
@@ -498,6 +537,7 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
498
537
  subtasks_complete?: boolean;
499
538
  custom_field_required?: string[];
500
539
  } | null;
540
+ time_tracked_minutes?: number | null;
501
541
  tags: {
502
542
  id: string;
503
543
  name: string;
@@ -661,6 +701,57 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
661
701
  }[];
662
702
  } | null>;
663
703
  bulkLoading: import("vue").Ref<boolean, boolean>;
704
+ activeTimer: import("vue").Ref<{
705
+ id: string;
706
+ task_id: string;
707
+ user_id: string;
708
+ user: {
709
+ id: string | number;
710
+ name: string;
711
+ avatar_url?: string;
712
+ } | null;
713
+ started_at: string | null;
714
+ stopped_at: string | null;
715
+ duration_minutes: number | null;
716
+ description: string | null;
717
+ is_manual: boolean;
718
+ is_running: boolean;
719
+ created_at: string | null;
720
+ updated_at: string | null;
721
+ } | null, TaskTimeEntry | {
722
+ id: string;
723
+ task_id: string;
724
+ user_id: string;
725
+ user: {
726
+ id: string | number;
727
+ name: string;
728
+ avatar_url?: string;
729
+ } | null;
730
+ started_at: string | null;
731
+ stopped_at: string | null;
732
+ duration_minutes: number | null;
733
+ description: string | null;
734
+ is_manual: boolean;
735
+ is_running: boolean;
736
+ created_at: string | null;
737
+ updated_at: string | null;
738
+ } | null>;
739
+ timeTrackingLoading: import("vue").Ref<boolean, boolean>;
740
+ importResult: import("vue").Ref<{
741
+ imported: number;
742
+ errors: {
743
+ row: number;
744
+ message: string;
745
+ }[];
746
+ } | null, TaskImportResult | {
747
+ imported: number;
748
+ errors: {
749
+ row: number;
750
+ message: string;
751
+ }[];
752
+ } | null>;
753
+ importLoading: import("vue").Ref<boolean, boolean>;
754
+ exportLoading: import("vue").Ref<boolean, boolean>;
664
755
  overdueTasks: import("vue").ComputedRef<{
665
756
  id: string;
666
757
  tenant_id: string;
@@ -713,6 +804,7 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
713
804
  subtasks_complete?: boolean;
714
805
  custom_field_required?: string[];
715
806
  } | null;
807
+ time_tracked_minutes?: number | null;
716
808
  tags: {
717
809
  id: string;
718
810
  name: string;
@@ -758,12 +850,19 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
758
850
  fetchEntityTasks: (type: string, id: string, filters?: TaskFilters) => Promise<void>;
759
851
  fetchEntitySummary: (type: string, id: string) => Promise<EntityTaskSummary>;
760
852
  instantiateTemplate: (templateId: string, payload: TemplateInstantiationPayload) => Promise<TaskDetail>;
853
+ fetchActiveTimer: () => Promise<TaskTimeEntry | null>;
854
+ startTimer: (taskId: string) => Promise<TaskDetail>;
855
+ stopTimer: (taskId: string) => Promise<TaskDetail>;
856
+ addManualTimeEntry: (taskId: string, payload: TaskManualTimeEntryPayload) => Promise<TaskDetail>;
857
+ deleteTimeEntry: (taskId: string, entryId: string) => Promise<TaskDetail>;
858
+ exportTasks: (filters?: TaskFilters) => Promise<string>;
859
+ importTasks: (file: File) => Promise<TaskImportResult>;
761
860
  fetchSavedFilters: () => Promise<TaskSavedFilter[]>;
762
861
  createSavedFilter: (payload: Omit<TaskSavedFilter, "id" | "tenant_id" | "user_id" | "created_at" | "updated_at">) => Promise<TaskSavedFilter>;
763
862
  updateSavedFilterRecord: (id: string, payload: Partial<Omit<TaskSavedFilter, "id" | "tenant_id" | "user_id" | "created_at" | "updated_at">>) => Promise<TaskSavedFilter>;
764
863
  deleteSavedFilterRecord: (id: string) => Promise<void>;
765
864
  runBulkAction: (taskIds: string[], action: TaskBulkAction, params?: Record<string, unknown>) => Promise<TaskBulkActionResult>;
766
- }, "pagination" | "tasks" | "currentTask" | "entitySummary" | "loading" | "error" | "lastFilters" | "savedFilters" | "savedFiltersLoading" | "bulkResult" | "bulkLoading">, Pick<{
865
+ }, "error" | "pagination" | "tasks" | "currentTask" | "entitySummary" | "loading" | "lastFilters" | "savedFilters" | "savedFiltersLoading" | "bulkResult" | "bulkLoading" | "activeTimer" | "timeTrackingLoading" | "importResult" | "importLoading" | "exportLoading">, Pick<{
767
866
  tasks: import("vue").Ref<{
768
867
  id: string;
769
868
  tenant_id: string;
@@ -816,6 +915,7 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
816
915
  subtasks_complete?: boolean;
817
916
  custom_field_required?: string[];
818
917
  } | null;
918
+ time_tracked_minutes?: number | null;
819
919
  tags: {
820
920
  id: string;
821
921
  name: string;
@@ -885,6 +985,7 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
885
985
  subtasks_complete?: boolean;
886
986
  custom_field_required?: string[];
887
987
  } | null;
988
+ time_tracked_minutes?: number | null;
888
989
  tags: {
889
990
  id: string;
890
991
  name: string;
@@ -932,6 +1033,24 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
932
1033
  position: number;
933
1034
  template_item_id?: string | null;
934
1035
  }[];
1036
+ time_entries: {
1037
+ id: string;
1038
+ task_id: string;
1039
+ user_id: string;
1040
+ user: {
1041
+ id: string | number;
1042
+ name: string;
1043
+ avatar_url?: string;
1044
+ } | null;
1045
+ started_at: string | null;
1046
+ stopped_at: string | null;
1047
+ duration_minutes: number | null;
1048
+ description: string | null;
1049
+ is_manual: boolean;
1050
+ is_running: boolean;
1051
+ created_at: string | null;
1052
+ updated_at: string | null;
1053
+ }[];
935
1054
  watchers: {
936
1055
  id: string | number;
937
1056
  name: string;
@@ -1074,6 +1193,7 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
1074
1193
  subtasks_complete?: boolean;
1075
1194
  custom_field_required?: string[];
1076
1195
  } | null;
1196
+ time_tracked_minutes?: number | null;
1077
1197
  tags: {
1078
1198
  id: string;
1079
1199
  name: string;
@@ -1120,6 +1240,24 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
1120
1240
  position: number;
1121
1241
  template_item_id?: string | null;
1122
1242
  }[];
1243
+ time_entries: {
1244
+ id: string;
1245
+ task_id: string;
1246
+ user_id: string;
1247
+ user: {
1248
+ id: string | number;
1249
+ name: string;
1250
+ avatar_url?: string;
1251
+ } | null;
1252
+ started_at: string | null;
1253
+ stopped_at: string | null;
1254
+ duration_minutes: number | null;
1255
+ description: string | null;
1256
+ is_manual: boolean;
1257
+ is_running: boolean;
1258
+ created_at: string | null;
1259
+ updated_at: string | null;
1260
+ }[];
1123
1261
  watchers: {
1124
1262
  id: string | number;
1125
1263
  name: string;
@@ -1262,6 +1400,7 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
1262
1400
  subtasks_complete?: boolean;
1263
1401
  custom_field_required?: string[];
1264
1402
  } | null;
1403
+ time_tracked_minutes?: number | null;
1265
1404
  tags: {
1266
1405
  id: string;
1267
1406
  name: string;
@@ -1425,6 +1564,57 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
1425
1564
  }[];
1426
1565
  } | null>;
1427
1566
  bulkLoading: import("vue").Ref<boolean, boolean>;
1567
+ activeTimer: import("vue").Ref<{
1568
+ id: string;
1569
+ task_id: string;
1570
+ user_id: string;
1571
+ user: {
1572
+ id: string | number;
1573
+ name: string;
1574
+ avatar_url?: string;
1575
+ } | null;
1576
+ started_at: string | null;
1577
+ stopped_at: string | null;
1578
+ duration_minutes: number | null;
1579
+ description: string | null;
1580
+ is_manual: boolean;
1581
+ is_running: boolean;
1582
+ created_at: string | null;
1583
+ updated_at: string | null;
1584
+ } | null, TaskTimeEntry | {
1585
+ id: string;
1586
+ task_id: string;
1587
+ user_id: string;
1588
+ user: {
1589
+ id: string | number;
1590
+ name: string;
1591
+ avatar_url?: string;
1592
+ } | null;
1593
+ started_at: string | null;
1594
+ stopped_at: string | null;
1595
+ duration_minutes: number | null;
1596
+ description: string | null;
1597
+ is_manual: boolean;
1598
+ is_running: boolean;
1599
+ created_at: string | null;
1600
+ updated_at: string | null;
1601
+ } | null>;
1602
+ timeTrackingLoading: import("vue").Ref<boolean, boolean>;
1603
+ importResult: import("vue").Ref<{
1604
+ imported: number;
1605
+ errors: {
1606
+ row: number;
1607
+ message: string;
1608
+ }[];
1609
+ } | null, TaskImportResult | {
1610
+ imported: number;
1611
+ errors: {
1612
+ row: number;
1613
+ message: string;
1614
+ }[];
1615
+ } | null>;
1616
+ importLoading: import("vue").Ref<boolean, boolean>;
1617
+ exportLoading: import("vue").Ref<boolean, boolean>;
1428
1618
  overdueTasks: import("vue").ComputedRef<{
1429
1619
  id: string;
1430
1620
  tenant_id: string;
@@ -1477,6 +1667,7 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
1477
1667
  subtasks_complete?: boolean;
1478
1668
  custom_field_required?: string[];
1479
1669
  } | null;
1670
+ time_tracked_minutes?: number | null;
1480
1671
  tags: {
1481
1672
  id: string;
1482
1673
  name: string;
@@ -1522,6 +1713,13 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
1522
1713
  fetchEntityTasks: (type: string, id: string, filters?: TaskFilters) => Promise<void>;
1523
1714
  fetchEntitySummary: (type: string, id: string) => Promise<EntityTaskSummary>;
1524
1715
  instantiateTemplate: (templateId: string, payload: TemplateInstantiationPayload) => Promise<TaskDetail>;
1716
+ fetchActiveTimer: () => Promise<TaskTimeEntry | null>;
1717
+ startTimer: (taskId: string) => Promise<TaskDetail>;
1718
+ stopTimer: (taskId: string) => Promise<TaskDetail>;
1719
+ addManualTimeEntry: (taskId: string, payload: TaskManualTimeEntryPayload) => Promise<TaskDetail>;
1720
+ deleteTimeEntry: (taskId: string, entryId: string) => Promise<TaskDetail>;
1721
+ exportTasks: (filters?: TaskFilters) => Promise<string>;
1722
+ importTasks: (file: File) => Promise<TaskImportResult>;
1525
1723
  fetchSavedFilters: () => Promise<TaskSavedFilter[]>;
1526
1724
  createSavedFilter: (payload: Omit<TaskSavedFilter, "id" | "tenant_id" | "user_id" | "created_at" | "updated_at">) => Promise<TaskSavedFilter>;
1527
1725
  updateSavedFilterRecord: (id: string, payload: Partial<Omit<TaskSavedFilter, "id" | "tenant_id" | "user_id" | "created_at" | "updated_at">>) => Promise<TaskSavedFilter>;
@@ -1580,6 +1778,7 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
1580
1778
  subtasks_complete?: boolean;
1581
1779
  custom_field_required?: string[];
1582
1780
  } | null;
1781
+ time_tracked_minutes?: number | null;
1583
1782
  tags: {
1584
1783
  id: string;
1585
1784
  name: string;
@@ -1649,6 +1848,7 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
1649
1848
  subtasks_complete?: boolean;
1650
1849
  custom_field_required?: string[];
1651
1850
  } | null;
1851
+ time_tracked_minutes?: number | null;
1652
1852
  tags: {
1653
1853
  id: string;
1654
1854
  name: string;
@@ -1696,6 +1896,24 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
1696
1896
  position: number;
1697
1897
  template_item_id?: string | null;
1698
1898
  }[];
1899
+ time_entries: {
1900
+ id: string;
1901
+ task_id: string;
1902
+ user_id: string;
1903
+ user: {
1904
+ id: string | number;
1905
+ name: string;
1906
+ avatar_url?: string;
1907
+ } | null;
1908
+ started_at: string | null;
1909
+ stopped_at: string | null;
1910
+ duration_minutes: number | null;
1911
+ description: string | null;
1912
+ is_manual: boolean;
1913
+ is_running: boolean;
1914
+ created_at: string | null;
1915
+ updated_at: string | null;
1916
+ }[];
1699
1917
  watchers: {
1700
1918
  id: string | number;
1701
1919
  name: string;
@@ -1838,6 +2056,7 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
1838
2056
  subtasks_complete?: boolean;
1839
2057
  custom_field_required?: string[];
1840
2058
  } | null;
2059
+ time_tracked_minutes?: number | null;
1841
2060
  tags: {
1842
2061
  id: string;
1843
2062
  name: string;
@@ -1884,6 +2103,24 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
1884
2103
  position: number;
1885
2104
  template_item_id?: string | null;
1886
2105
  }[];
2106
+ time_entries: {
2107
+ id: string;
2108
+ task_id: string;
2109
+ user_id: string;
2110
+ user: {
2111
+ id: string | number;
2112
+ name: string;
2113
+ avatar_url?: string;
2114
+ } | null;
2115
+ started_at: string | null;
2116
+ stopped_at: string | null;
2117
+ duration_minutes: number | null;
2118
+ description: string | null;
2119
+ is_manual: boolean;
2120
+ is_running: boolean;
2121
+ created_at: string | null;
2122
+ updated_at: string | null;
2123
+ }[];
1887
2124
  watchers: {
1888
2125
  id: string | number;
1889
2126
  name: string;
@@ -2026,6 +2263,7 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
2026
2263
  subtasks_complete?: boolean;
2027
2264
  custom_field_required?: string[];
2028
2265
  } | null;
2266
+ time_tracked_minutes?: number | null;
2029
2267
  tags: {
2030
2268
  id: string;
2031
2269
  name: string;
@@ -2189,6 +2427,57 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
2189
2427
  }[];
2190
2428
  } | null>;
2191
2429
  bulkLoading: import("vue").Ref<boolean, boolean>;
2430
+ activeTimer: import("vue").Ref<{
2431
+ id: string;
2432
+ task_id: string;
2433
+ user_id: string;
2434
+ user: {
2435
+ id: string | number;
2436
+ name: string;
2437
+ avatar_url?: string;
2438
+ } | null;
2439
+ started_at: string | null;
2440
+ stopped_at: string | null;
2441
+ duration_minutes: number | null;
2442
+ description: string | null;
2443
+ is_manual: boolean;
2444
+ is_running: boolean;
2445
+ created_at: string | null;
2446
+ updated_at: string | null;
2447
+ } | null, TaskTimeEntry | {
2448
+ id: string;
2449
+ task_id: string;
2450
+ user_id: string;
2451
+ user: {
2452
+ id: string | number;
2453
+ name: string;
2454
+ avatar_url?: string;
2455
+ } | null;
2456
+ started_at: string | null;
2457
+ stopped_at: string | null;
2458
+ duration_minutes: number | null;
2459
+ description: string | null;
2460
+ is_manual: boolean;
2461
+ is_running: boolean;
2462
+ created_at: string | null;
2463
+ updated_at: string | null;
2464
+ } | null>;
2465
+ timeTrackingLoading: import("vue").Ref<boolean, boolean>;
2466
+ importResult: import("vue").Ref<{
2467
+ imported: number;
2468
+ errors: {
2469
+ row: number;
2470
+ message: string;
2471
+ }[];
2472
+ } | null, TaskImportResult | {
2473
+ imported: number;
2474
+ errors: {
2475
+ row: number;
2476
+ message: string;
2477
+ }[];
2478
+ } | null>;
2479
+ importLoading: import("vue").Ref<boolean, boolean>;
2480
+ exportLoading: import("vue").Ref<boolean, boolean>;
2192
2481
  overdueTasks: import("vue").ComputedRef<{
2193
2482
  id: string;
2194
2483
  tenant_id: string;
@@ -2241,6 +2530,7 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
2241
2530
  subtasks_complete?: boolean;
2242
2531
  custom_field_required?: string[];
2243
2532
  } | null;
2533
+ time_tracked_minutes?: number | null;
2244
2534
  tags: {
2245
2535
  id: string;
2246
2536
  name: string;
@@ -2286,9 +2576,16 @@ export declare const useTaskStore: import("pinia").StoreDefinition<"task-engine/
2286
2576
  fetchEntityTasks: (type: string, id: string, filters?: TaskFilters) => Promise<void>;
2287
2577
  fetchEntitySummary: (type: string, id: string) => Promise<EntityTaskSummary>;
2288
2578
  instantiateTemplate: (templateId: string, payload: TemplateInstantiationPayload) => Promise<TaskDetail>;
2579
+ fetchActiveTimer: () => Promise<TaskTimeEntry | null>;
2580
+ startTimer: (taskId: string) => Promise<TaskDetail>;
2581
+ stopTimer: (taskId: string) => Promise<TaskDetail>;
2582
+ addManualTimeEntry: (taskId: string, payload: TaskManualTimeEntryPayload) => Promise<TaskDetail>;
2583
+ deleteTimeEntry: (taskId: string, entryId: string) => Promise<TaskDetail>;
2584
+ exportTasks: (filters?: TaskFilters) => Promise<string>;
2585
+ importTasks: (file: File) => Promise<TaskImportResult>;
2289
2586
  fetchSavedFilters: () => Promise<TaskSavedFilter[]>;
2290
2587
  createSavedFilter: (payload: Omit<TaskSavedFilter, "id" | "tenant_id" | "user_id" | "created_at" | "updated_at">) => Promise<TaskSavedFilter>;
2291
2588
  updateSavedFilterRecord: (id: string, payload: Partial<Omit<TaskSavedFilter, "id" | "tenant_id" | "user_id" | "created_at" | "updated_at">>) => Promise<TaskSavedFilter>;
2292
2589
  deleteSavedFilterRecord: (id: string) => Promise<void>;
2293
2590
  runBulkAction: (taskIds: string[], action: TaskBulkAction, params?: Record<string, unknown>) => Promise<TaskBulkActionResult>;
2294
- }, "isViewingTask" | "handleTaskCreated" | "handleTaskUpdated" | "handleStatusChanged" | "handleTaskAssigned" | "handleTaskCompleted" | "handleCommentAdded" | "handleChecklistToggled" | "fetchTasks" | "fetchTask" | "createTask" | "updateTask" | "deleteTask" | "completeTask" | "reopenTask" | "cancelTask" | "addComment" | "acknowledgeEscalation" | "snoozeEscalation" | "addChecklistItem" | "toggleChecklistItem" | "removeChecklistItem" | "fetchEntityTasks" | "fetchEntitySummary" | "instantiateTemplate" | "fetchSavedFilters" | "createSavedFilter" | "updateSavedFilterRecord" | "deleteSavedFilterRecord" | "runBulkAction">>;
2591
+ }, "isViewingTask" | "handleTaskCreated" | "handleTaskUpdated" | "handleStatusChanged" | "handleTaskAssigned" | "handleTaskCompleted" | "handleCommentAdded" | "handleChecklistToggled" | "fetchTasks" | "fetchTask" | "createTask" | "updateTask" | "deleteTask" | "completeTask" | "reopenTask" | "cancelTask" | "addComment" | "acknowledgeEscalation" | "snoozeEscalation" | "addChecklistItem" | "toggleChecklistItem" | "removeChecklistItem" | "fetchEntityTasks" | "fetchEntitySummary" | "instantiateTemplate" | "fetchActiveTimer" | "startTimer" | "stopTimer" | "addManualTimeEntry" | "deleteTimeEntry" | "exportTasks" | "importTasks" | "fetchSavedFilters" | "createSavedFilter" | "updateSavedFilterRecord" | "deleteSavedFilterRecord" | "runBulkAction">>;