@codingfactory/task-engine-client 0.1.0 → 1.0.0

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.
@@ -14,8 +14,12 @@ export { default as RecurringTemplateForm } from './recurrence/RecurringTemplate
14
14
  export { default as RecurringTemplateList } from './recurrence/RecurringTemplateList.vue';
15
15
  export { default as TaskListView } from './list/TaskListView.vue';
16
16
  export { default as TaskSavedFilterTabs } from './list/TaskSavedFilterTabs.vue';
17
+ export { default as WorkflowForm } from './workflows/WorkflowForm.vue';
18
+ export { default as WorkflowList } from './workflows/WorkflowList.vue';
19
+ export { default as WorkflowLogs } from './workflows/WorkflowLogs.vue';
17
20
  export { default as TaskPriorityIcon } from './shared/TaskPriorityIcon.vue';
18
21
  export { default as TaskEntityWidget } from './shared/TaskEntityWidget.vue';
22
+ export { default as TaskImportExportPanel } from './shared/TaskImportExportPanel.vue';
19
23
  export { default as TaskNotificationToast } from './shared/TaskNotificationToast.vue';
20
24
  export { default as TaskQuickCreate } from './shared/TaskQuickCreate.vue';
21
25
  export { default as EscalationActions } from './task/EscalationActions.vue';
@@ -25,5 +29,7 @@ export { default as TaskChecklist } from './task/TaskChecklist.vue';
25
29
  export { default as TaskComments } from './task/TaskComments.vue';
26
30
  export { default as TaskDetailView } from './task/TaskDetail.vue';
27
31
  export { default as TaskForm } from './task/TaskForm.vue';
32
+ export { default as TaskTimeTracker } from './task/TaskTimeTracker.vue';
28
33
  export { default as TaskStatusBadge } from './task/TaskStatusBadge.vue';
29
34
  export { default as TaskTimeline } from './task/TaskTimeline.vue';
35
+ export { TaskDetailPage, TaskListPage, TaskDashboardPage, TaskRecurringPage } from './pages';
@@ -0,0 +1,11 @@
1
+ type __VLS_Props = {
2
+ userId: string | number;
3
+ echo?: unknown;
4
+ autoConnect?: boolean;
5
+ };
6
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ "navigate-to-task": (taskId: string) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onNavigate-to-task"?: (taskId: string) => any;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ export default _default;
@@ -0,0 +1,13 @@
1
+ type __VLS_Props = {
2
+ taskId: string;
3
+ };
4
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
5
+ "navigate-back": () => any;
6
+ "task-deleted": (taskId: string) => any;
7
+ "edit-task": (taskId: string) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onNavigate-back"?: () => any;
10
+ "onTask-deleted"?: (taskId: string) => any;
11
+ "onEdit-task"?: (taskId: string) => any;
12
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
+ export default _default;
@@ -0,0 +1,12 @@
1
+ type __VLS_Props = {
2
+ entityContext?: {
3
+ type: string;
4
+ id: string;
5
+ } | null;
6
+ };
7
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ "navigate-to-task": (taskId: string) => any;
9
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
10
+ "onNavigate-to-task"?: (taskId: string) => any;
11
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ export default _default;
@@ -0,0 +1,6 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
2
+ "navigate-to-task": (taskId: string) => any;
3
+ }, string, import("vue").PublicProps, Readonly<{}> & Readonly<{
4
+ "onNavigate-to-task"?: (taskId: string) => any;
5
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
6
+ export default _default;
@@ -0,0 +1,4 @@
1
+ export { default as TaskDetailPage } from './TaskDetailPage.vue';
2
+ export { default as TaskListPage } from './TaskListPage.vue';
3
+ export { default as TaskDashboardPage } from './TaskDashboardPage.vue';
4
+ export { default as TaskRecurringPage } from './TaskRecurringPage.vue';
@@ -0,0 +1,15 @@
1
+ import type { TaskImportResult } from '@/types';
2
+ type __VLS_Props = {
3
+ busy?: boolean;
4
+ importing?: boolean;
5
+ exporting?: boolean;
6
+ result?: TaskImportResult | null;
7
+ };
8
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
+ import: (file: File) => any;
10
+ export: () => any;
11
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
12
+ onImport?: (file: File) => any;
13
+ onExport?: () => any;
14
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ export default _default;
@@ -1,6 +1,7 @@
1
- import type { TaskDetail } from '@/types';
1
+ import type { TaskDetail, TaskTimeEntry } from '@/types';
2
2
  type __VLS_Props = {
3
3
  task: TaskDetail | null;
4
+ activeTimer?: TaskTimeEntry | null;
4
5
  busy?: boolean;
5
6
  };
6
7
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -8,6 +9,8 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
8
9
  cancel: (taskId: string) => any;
9
10
  delete: (taskId: string) => any;
10
11
  edit: (taskId: string) => any;
12
+ "start-timer": (taskId: string) => any;
13
+ "stop-timer": (taskId: string) => any;
11
14
  reopen: (taskId: string) => any;
12
15
  "acknowledge-escalation": (taskId: string) => any;
13
16
  "snooze-escalation": (payload: {
@@ -23,11 +26,22 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
23
26
  "toggle-checklist-item": (itemId: string) => any;
24
27
  "remove-checklist-item": (itemId: string) => any;
25
28
  "reorder-checklist-items": (itemIds: string[]) => any;
29
+ "add-manual-time-entry": (payload: {
30
+ taskId: string;
31
+ duration_minutes: number;
32
+ description?: string | null;
33
+ }) => any;
34
+ "delete-time-entry": (payload: {
35
+ taskId: string;
36
+ entryId: string;
37
+ }) => any;
26
38
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
27
39
  onComplete?: (taskId: string) => any;
28
40
  onCancel?: (taskId: string) => any;
29
41
  onDelete?: (taskId: string) => any;
30
42
  onEdit?: (taskId: string) => any;
43
+ "onStart-timer"?: (taskId: string) => any;
44
+ "onStop-timer"?: (taskId: string) => any;
31
45
  onReopen?: (taskId: string) => any;
32
46
  "onAcknowledge-escalation"?: (taskId: string) => any;
33
47
  "onSnooze-escalation"?: (payload: {
@@ -43,5 +57,14 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
43
57
  "onToggle-checklist-item"?: (itemId: string) => any;
44
58
  "onRemove-checklist-item"?: (itemId: string) => any;
45
59
  "onReorder-checklist-items"?: (itemIds: string[]) => any;
60
+ "onAdd-manual-time-entry"?: (payload: {
61
+ taskId: string;
62
+ duration_minutes: number;
63
+ description?: string | null;
64
+ }) => any;
65
+ "onDelete-time-entry"?: (payload: {
66
+ taskId: string;
67
+ entryId: string;
68
+ }) => any;
46
69
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
47
70
  export default _default;
@@ -0,0 +1,28 @@
1
+ import type { TaskDetail, TaskManualTimeEntryPayload, TaskTimeEntry } from '@/types';
2
+ type __VLS_Props = {
3
+ task: TaskDetail;
4
+ activeTimer?: TaskTimeEntry | null;
5
+ busy?: boolean;
6
+ };
7
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ "start-timer": (taskId: string) => any;
9
+ "stop-timer": (taskId: string) => any;
10
+ "add-manual-entry": (payload: TaskManualTimeEntryPayload & {
11
+ taskId: string;
12
+ }) => any;
13
+ "delete-entry": (payload: {
14
+ taskId: string;
15
+ entryId: string;
16
+ }) => any;
17
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
18
+ "onStart-timer"?: (taskId: string) => any;
19
+ "onStop-timer"?: (taskId: string) => any;
20
+ "onAdd-manual-entry"?: (payload: TaskManualTimeEntryPayload & {
21
+ taskId: string;
22
+ }) => any;
23
+ "onDelete-entry"?: (payload: {
24
+ taskId: string;
25
+ entryId: string;
26
+ }) => any;
27
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
28
+ export default _default;
@@ -0,0 +1,14 @@
1
+ import type { TaskWorkflow, TaskWorkflowMutationPayload, TaskWorkflowUpdatePayload } from '@/types';
2
+ type __VLS_Props = {
3
+ workflow?: TaskWorkflow | null;
4
+ mode?: 'create' | 'edit';
5
+ submitting?: boolean;
6
+ };
7
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ cancel: () => any;
9
+ submit: (payload: TaskWorkflowMutationPayload | TaskWorkflowUpdatePayload) => any;
10
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
11
+ onCancel?: () => any;
12
+ onSubmit?: (payload: TaskWorkflowMutationPayload | TaskWorkflowUpdatePayload) => any;
13
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
+ export default _default;
@@ -0,0 +1,34 @@
1
+ import type { TaskWorkflow } from '@/types';
2
+ type __VLS_Props = {
3
+ workflows: TaskWorkflow[];
4
+ loading?: boolean;
5
+ error?: string | null;
6
+ };
7
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ move: (payload: {
9
+ workflow: TaskWorkflow;
10
+ direction: "up" | "down";
11
+ }) => any;
12
+ edit: (workflow: TaskWorkflow) => any;
13
+ remove: (workflow: TaskWorkflow) => any;
14
+ duplicate: (workflow: TaskWorkflow) => any;
15
+ toggle: (payload: {
16
+ workflow: TaskWorkflow;
17
+ isEnabled: boolean;
18
+ }) => any;
19
+ logs: (workflow: TaskWorkflow) => any;
20
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
21
+ onMove?: (payload: {
22
+ workflow: TaskWorkflow;
23
+ direction: "up" | "down";
24
+ }) => any;
25
+ onEdit?: (workflow: TaskWorkflow) => any;
26
+ onRemove?: (workflow: TaskWorkflow) => any;
27
+ onDuplicate?: (workflow: TaskWorkflow) => any;
28
+ onToggle?: (payload: {
29
+ workflow: TaskWorkflow;
30
+ isEnabled: boolean;
31
+ }) => any;
32
+ onLogs?: (workflow: TaskWorkflow) => any;
33
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
34
+ export default _default;
@@ -0,0 +1,19 @@
1
+ import type { TaskWorkflowLog, WorkflowLogStatus } from '@/types';
2
+ type __VLS_Props = {
3
+ logs: TaskWorkflowLog[];
4
+ loading?: boolean;
5
+ };
6
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ refresh: (filters: {
8
+ status?: WorkflowLogStatus;
9
+ date_from?: string;
10
+ date_to?: string;
11
+ }) => any;
12
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
13
+ onRefresh?: (filters: {
14
+ status?: WorkflowLogStatus;
15
+ date_from?: string;
16
+ date_to?: string;
17
+ }) => any;
18
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
+ export default _default;
@@ -5,3 +5,5 @@ export { useTaskNotificationFeed } from './useTaskNotificationFeed';
5
5
  export { useTaskPresence } from './useTaskPresence';
6
6
  export { useTaskSavedFilters } from './useTaskSavedFilters';
7
7
  export { useTaskWebSocket } from './useTaskWebSocket';
8
+ export { useTaskWorkflows } from './useTaskWorkflows';
9
+ export { useRecurringTemplates } from './useRecurringTemplates';
@@ -0,0 +1,114 @@
1
+ import type { RecurringTemplate, RecurringTemplateFilters, RecurringTemplateMutationPayload, RecurringTemplateUpdatePayload, TaskDetail } from '@/types';
2
+ export declare function useRecurringTemplates(): {
3
+ templates: import("vue").ComputedRef<{
4
+ id: string;
5
+ tenant_id: string;
6
+ task_template_id: string | null;
7
+ task_template: {
8
+ id: string;
9
+ name: string;
10
+ } | null;
11
+ title: string | null;
12
+ description: string | null;
13
+ rrule: string;
14
+ rrule_human: string;
15
+ timezone: string;
16
+ taskable_type: string | null;
17
+ taskable_id: string | null;
18
+ primary_assignee_id: string | null;
19
+ priority: import("@/types").TaskPriority;
20
+ priority_label?: string | null;
21
+ due_offset_hours: number | null;
22
+ tags: string[];
23
+ is_active: boolean;
24
+ skip_holidays: boolean;
25
+ business_hours_only: boolean;
26
+ chain_mode: boolean;
27
+ last_generated_at: string | null;
28
+ next_occurrence_at: string | null;
29
+ metadata: Record<string, unknown> | null;
30
+ created_by: string | number | null;
31
+ created_at: string | null;
32
+ updated_at: string | null;
33
+ deleted_at: string | null;
34
+ history: {
35
+ id: string;
36
+ recurring_template_id: string;
37
+ task_id: string;
38
+ occurrence_date: string;
39
+ generated_at: string;
40
+ created_at: string | null;
41
+ task: {
42
+ id: string;
43
+ display_number_formatted: string;
44
+ title: string;
45
+ status: import("@/types").TaskStatus;
46
+ priority: import("@/types").TaskPriority;
47
+ } | null;
48
+ }[];
49
+ }[]>;
50
+ currentTemplate: import("vue").ComputedRef<{
51
+ id: string;
52
+ tenant_id: string;
53
+ task_template_id: string | null;
54
+ task_template: {
55
+ id: string;
56
+ name: string;
57
+ } | null;
58
+ title: string | null;
59
+ description: string | null;
60
+ rrule: string;
61
+ rrule_human: string;
62
+ timezone: string;
63
+ taskable_type: string | null;
64
+ taskable_id: string | null;
65
+ primary_assignee_id: string | null;
66
+ priority: import("@/types").TaskPriority;
67
+ priority_label?: string | null;
68
+ due_offset_hours: number | null;
69
+ tags: string[];
70
+ is_active: boolean;
71
+ skip_holidays: boolean;
72
+ business_hours_only: boolean;
73
+ chain_mode: boolean;
74
+ last_generated_at: string | null;
75
+ next_occurrence_at: string | null;
76
+ metadata: Record<string, unknown> | null;
77
+ created_by: string | number | null;
78
+ created_at: string | null;
79
+ updated_at: string | null;
80
+ deleted_at: string | null;
81
+ history: {
82
+ id: string;
83
+ recurring_template_id: string;
84
+ task_id: string;
85
+ occurrence_date: string;
86
+ generated_at: string;
87
+ created_at: string | null;
88
+ task: {
89
+ id: string;
90
+ display_number_formatted: string;
91
+ title: string;
92
+ status: import("@/types").TaskStatus;
93
+ priority: import("@/types").TaskPriority;
94
+ } | null;
95
+ }[];
96
+ } | null>;
97
+ loading: import("vue").ComputedRef<boolean>;
98
+ saving: import("vue").ComputedRef<boolean>;
99
+ error: import("vue").ComputedRef<string | null>;
100
+ pagination: import("vue").ComputedRef<{
101
+ current_page: number;
102
+ last_page: number;
103
+ per_page: number;
104
+ total: number;
105
+ }>;
106
+ loadTemplates: (filters?: RecurringTemplateFilters) => Promise<void>;
107
+ loadTemplate: (id: string) => Promise<RecurringTemplate | null>;
108
+ createTemplate: (payload: RecurringTemplateMutationPayload) => Promise<RecurringTemplate | null>;
109
+ updateTemplate: (id: string, payload: RecurringTemplateUpdatePayload) => Promise<RecurringTemplate | null>;
110
+ deleteTemplate: (id: string) => Promise<boolean>;
111
+ pauseTemplate: (id: string) => Promise<RecurringTemplate | null>;
112
+ resumeTemplate: (id: string) => Promise<RecurringTemplate | null>;
113
+ generateFromTemplate: (id: string) => Promise<TaskDetail | null>;
114
+ };
@@ -1,5 +1,5 @@
1
1
  import { type MaybeRefOrGetter } from 'vue';
2
- import type { TaskCommentPayload, TaskDetail, TaskEscalationSnoozePayload } from '@/types';
2
+ import type { TaskCommentPayload, TaskDetail, TaskEscalationSnoozePayload, TaskManualTimeEntryPayload } from '@/types';
3
3
  export declare function useTaskDetail(taskId?: MaybeRefOrGetter<string | null | undefined>): {
4
4
  task: import("vue").ComputedRef<{
5
5
  comments: {
@@ -30,6 +30,24 @@ export declare function useTaskDetail(taskId?: MaybeRefOrGetter<string | null |
30
30
  position: number;
31
31
  template_item_id?: string | null;
32
32
  }[];
33
+ time_entries: {
34
+ id: string;
35
+ task_id: string;
36
+ user_id: string;
37
+ user: {
38
+ id: string | number;
39
+ name: string;
40
+ avatar_url?: string;
41
+ } | null;
42
+ started_at: string | null;
43
+ stopped_at: string | null;
44
+ duration_minutes: number | null;
45
+ description: string | null;
46
+ is_manual: boolean;
47
+ is_running: boolean;
48
+ created_at: string | null;
49
+ updated_at: string | null;
50
+ }[];
33
51
  watchers: {
34
52
  id: string | number;
35
53
  name: string;
@@ -172,6 +190,7 @@ export declare function useTaskDetail(taskId?: MaybeRefOrGetter<string | null |
172
190
  subtasks_complete?: boolean;
173
191
  custom_field_required?: string[];
174
192
  } | null;
193
+ time_tracked_minutes?: number | null;
175
194
  tags: {
176
195
  id: string;
177
196
  name: string;
@@ -190,6 +209,24 @@ export declare function useTaskDetail(taskId?: MaybeRefOrGetter<string | null |
190
209
  created_at: string;
191
210
  updated_at: string;
192
211
  } | null>;
212
+ activeTimer: import("vue").ComputedRef<{
213
+ id: string;
214
+ task_id: string;
215
+ user_id: string;
216
+ user: {
217
+ id: string | number;
218
+ name: string;
219
+ avatar_url?: string;
220
+ } | null;
221
+ started_at: string | null;
222
+ stopped_at: string | null;
223
+ duration_minutes: number | null;
224
+ description: string | null;
225
+ is_manual: boolean;
226
+ is_running: boolean;
227
+ created_at: string | null;
228
+ updated_at: string | null;
229
+ } | null>;
193
230
  loading: import("vue").ComputedRef<boolean>;
194
231
  error: import("vue").ComputedRef<string | null>;
195
232
  loadTask: (id?: string | null) => Promise<TaskDetail | null>;
@@ -199,6 +236,10 @@ export declare function useTaskDetail(taskId?: MaybeRefOrGetter<string | null |
199
236
  addChecklistItem: (title: string) => Promise<TaskDetail | null>;
200
237
  toggleChecklistItem: (itemId: string) => Promise<TaskDetail | null>;
201
238
  removeChecklistItem: (itemId: string) => Promise<TaskDetail | null>;
239
+ startTimer: (taskIdOverride?: string | null) => Promise<TaskDetail | null>;
240
+ stopTimer: (taskIdOverride?: string | null) => Promise<TaskDetail | null>;
241
+ addManualTimeEntry: (payload: TaskManualTimeEntryPayload, taskIdOverride?: string | null) => Promise<TaskDetail | null>;
242
+ deleteTimeEntry: (entryId: string, taskIdOverride?: string | null) => Promise<TaskDetail | null>;
202
243
  completeTask: (id: string, note?: string) => Promise<TaskDetail>;
203
244
  reopenTask: (id: string) => Promise<TaskDetail>;
204
245
  cancelTask: (id: string) => Promise<TaskDetail>;
@@ -0,0 +1,133 @@
1
+ import type { TaskWorkflowFilters } from '@/types';
2
+ interface UseTaskWorkflowsOptions {
3
+ autoLoad?: boolean;
4
+ initialFilters?: TaskWorkflowFilters;
5
+ }
6
+ export declare function useTaskWorkflows(options?: UseTaskWorkflowsOptions): {
7
+ filters: import("vue").ComputedRef<{
8
+ search?: string;
9
+ trigger_type?: import("@/types").WorkflowTriggerType;
10
+ page?: number;
11
+ per_page?: number;
12
+ }>;
13
+ workflows: import("vue").ComputedRef<{
14
+ id: string;
15
+ tenant_id: string;
16
+ name: string;
17
+ description: string | null;
18
+ trigger_type: import("@/types").WorkflowTriggerType;
19
+ trigger_type_label?: string | null;
20
+ trigger_config: Record<string, unknown> | null;
21
+ conditions: {
22
+ field: import("@/types").WorkflowConditionField;
23
+ operator: import("@/types").WorkflowConditionOperator;
24
+ value?: unknown;
25
+ }[];
26
+ actions: {
27
+ type: import("@/types").WorkflowActionType;
28
+ value?: unknown;
29
+ config?: Record<string, unknown>;
30
+ }[];
31
+ is_enabled: boolean;
32
+ position: number;
33
+ stop_processing: boolean;
34
+ metadata: Record<string, unknown> | null;
35
+ created_by: string | null;
36
+ execution_count: number;
37
+ last_executed_at: string | null;
38
+ created_at: string | null;
39
+ updated_at: string | null;
40
+ }[]>;
41
+ pagination: import("vue").ComputedRef<{
42
+ current_page: number;
43
+ last_page: number;
44
+ per_page: number;
45
+ total: number;
46
+ }>;
47
+ currentWorkflow: import("vue").ComputedRef<{
48
+ id: string;
49
+ tenant_id: string;
50
+ name: string;
51
+ description: string | null;
52
+ trigger_type: import("@/types").WorkflowTriggerType;
53
+ trigger_type_label?: string | null;
54
+ trigger_config: Record<string, unknown> | null;
55
+ conditions: {
56
+ field: import("@/types").WorkflowConditionField;
57
+ operator: import("@/types").WorkflowConditionOperator;
58
+ value?: unknown;
59
+ }[];
60
+ actions: {
61
+ type: import("@/types").WorkflowActionType;
62
+ value?: unknown;
63
+ config?: Record<string, unknown>;
64
+ }[];
65
+ is_enabled: boolean;
66
+ position: number;
67
+ stop_processing: boolean;
68
+ metadata: Record<string, unknown> | null;
69
+ created_by: string | null;
70
+ execution_count: number;
71
+ last_executed_at: string | null;
72
+ created_at: string | null;
73
+ updated_at: string | null;
74
+ } | null>;
75
+ testResult: import("vue").ComputedRef<{
76
+ workflow: {
77
+ id: string;
78
+ tenant_id: string;
79
+ name: string;
80
+ description: string | null;
81
+ trigger_type: import("@/types").WorkflowTriggerType;
82
+ trigger_type_label?: string | null;
83
+ trigger_config: Record<string, unknown> | null;
84
+ conditions: {
85
+ field: import("@/types").WorkflowConditionField;
86
+ operator: import("@/types").WorkflowConditionOperator;
87
+ value?: unknown;
88
+ }[];
89
+ actions: {
90
+ type: import("@/types").WorkflowActionType;
91
+ value?: unknown;
92
+ config?: Record<string, unknown>;
93
+ }[];
94
+ is_enabled: boolean;
95
+ position: number;
96
+ stop_processing: boolean;
97
+ metadata: Record<string, unknown> | null;
98
+ created_by: string | null;
99
+ execution_count: number;
100
+ last_executed_at: string | null;
101
+ created_at: string | null;
102
+ updated_at: string | null;
103
+ };
104
+ task_id: string;
105
+ trigger_matched: boolean;
106
+ conditions_met: boolean;
107
+ actions: {
108
+ type: string;
109
+ success: boolean;
110
+ message: string;
111
+ data: Record<string, unknown>;
112
+ dry_run: boolean;
113
+ }[];
114
+ } | null>;
115
+ logsByWorkflow: import("vue").ComputedRef<{
116
+ [x: string]: import("@/types").PaginatedResponse<import("@/types").TaskWorkflowLog> | undefined;
117
+ }>;
118
+ loading: import("vue").ComputedRef<boolean>;
119
+ saving: import("vue").ComputedRef<boolean>;
120
+ error: import("vue").ComputedRef<string | null>;
121
+ reload: () => Promise<void>;
122
+ setFilters: (value: TaskWorkflowFilters) => Promise<void>;
123
+ fetchWorkflow: (id: string) => Promise<import("@/types").TaskWorkflow>;
124
+ createWorkflow: (data: import("@/types").TaskWorkflowMutationPayload) => Promise<import("@/types").TaskWorkflow>;
125
+ updateWorkflow: (id: string, data: import("@/types").TaskWorkflowUpdatePayload) => Promise<import("@/types").TaskWorkflow>;
126
+ deleteWorkflow: (id: string) => Promise<void>;
127
+ toggleWorkflow: (id: string, isEnabled?: boolean) => Promise<import("@/types").TaskWorkflow>;
128
+ duplicateWorkflow: (workflow: import("@/types").TaskWorkflow) => Promise<import("@/types").TaskWorkflow>;
129
+ moveWorkflow: (id: string, direction: "up" | "down") => Promise<void>;
130
+ fetchLogs: (workflowId: string, filters?: import("@/types").TaskWorkflowLogFilters) => Promise<import("@/types").PaginatedResponse<import("@/types").TaskWorkflowLog>>;
131
+ runTest: (workflowId: string, taskId: string, context?: Record<string, unknown>) => Promise<import("@/types").TaskWorkflowTestResult>;
132
+ };
133
+ export {};