import { ContractTaskStatus } from '@prisma/client'; export interface ContractTaskFilters { contractId: number; status?: ContractTaskStatus; visibleInPortal?: boolean; customerPortalEmails?: string[]; } export declare function getTasksByContract(filters: ContractTaskFilters): Promise<({ subtasks: { id: number; createdAt: Date; updatedAt: Date; status: import(".prisma/client").$Enums.ContractTaskStatus; title: string; createdBy: string | null; completedAt: Date | null; taskId: number; }[]; } & { id: number; createdAt: Date; updatedAt: Date; description: string | null; status: import(".prisma/client").$Enums.ContractTaskStatus; contractId: number; title: string; visibleInPortal: boolean; createdBy: string | null; completedAt: Date | null; })[]>; export declare function getTaskById(id: number): Promise<{ id: number; createdAt: Date; updatedAt: Date; description: string | null; status: import(".prisma/client").$Enums.ContractTaskStatus; contractId: number; title: string; visibleInPortal: boolean; createdBy: string | null; completedAt: Date | null; } | null>; export declare function createTask(data: { contractId: number; title: string; description?: string; visibleInPortal?: boolean; createdBy?: string; }): Promise<{ id: number; createdAt: Date; updatedAt: Date; description: string | null; status: import(".prisma/client").$Enums.ContractTaskStatus; contractId: number; title: string; visibleInPortal: boolean; createdBy: string | null; completedAt: Date | null; }>; export declare function updateTask(id: number, data: { title?: string; description?: string; visibleInPortal?: boolean; }): Promise<{ id: number; createdAt: Date; updatedAt: Date; description: string | null; status: import(".prisma/client").$Enums.ContractTaskStatus; contractId: number; title: string; visibleInPortal: boolean; createdBy: string | null; completedAt: Date | null; }>; export declare function completeTask(id: number): Promise<{ id: number; createdAt: Date; updatedAt: Date; description: string | null; status: import(".prisma/client").$Enums.ContractTaskStatus; contractId: number; title: string; visibleInPortal: boolean; createdBy: string | null; completedAt: Date | null; }>; export declare function reopenTask(id: number): Promise<{ id: number; createdAt: Date; updatedAt: Date; description: string | null; status: import(".prisma/client").$Enums.ContractTaskStatus; contractId: number; title: string; visibleInPortal: boolean; createdBy: string | null; completedAt: Date | null; }>; export declare function deleteTask(id: number): Promise<{ id: number; createdAt: Date; updatedAt: Date; description: string | null; status: import(".prisma/client").$Enums.ContractTaskStatus; contractId: number; title: string; visibleInPortal: boolean; createdBy: string | null; completedAt: Date | null; }>; export declare function createSubtask(data: { taskId: number; title: string; createdBy?: string; }): Promise<{ id: number; createdAt: Date; updatedAt: Date; status: import(".prisma/client").$Enums.ContractTaskStatus; title: string; createdBy: string | null; completedAt: Date | null; taskId: number; }>; export declare function updateSubtask(id: number, data: { title?: string; }): Promise<{ id: number; createdAt: Date; updatedAt: Date; status: import(".prisma/client").$Enums.ContractTaskStatus; title: string; createdBy: string | null; completedAt: Date | null; taskId: number; }>; export declare function completeSubtask(id: number): Promise<{ id: number; createdAt: Date; updatedAt: Date; status: import(".prisma/client").$Enums.ContractTaskStatus; title: string; createdBy: string | null; completedAt: Date | null; taskId: number; }>; export declare function reopenSubtask(id: number): Promise<{ id: number; createdAt: Date; updatedAt: Date; status: import(".prisma/client").$Enums.ContractTaskStatus; title: string; createdBy: string | null; completedAt: Date | null; taskId: number; }>; export declare function deleteSubtask(id: number): Promise<{ id: number; createdAt: Date; updatedAt: Date; status: import(".prisma/client").$Enums.ContractTaskStatus; title: string; createdBy: string | null; completedAt: Date | null; taskId: number; }>; export declare function getSubtaskById(id: number): Promise<({ task: { id: number; createdAt: Date; updatedAt: Date; description: string | null; status: import(".prisma/client").$Enums.ContractTaskStatus; contractId: number; title: string; visibleInPortal: boolean; createdBy: string | null; completedAt: Date | null; }; } & { id: number; createdAt: Date; updatedAt: Date; status: import(".prisma/client").$Enums.ContractTaskStatus; title: string; createdBy: string | null; completedAt: Date | null; taskId: number; }) | null>; export interface AllTasksFilters { status?: ContractTaskStatus; customerId?: number; customerPortalCustomerIds?: number[]; customerPortalEmails?: string[]; } export declare function getAllTasks(filters: AllTasksFilters): Promise<({ contract: { id: number; customerId: number; customer: { id: number; firstName: string; lastName: string; customerNumber: string; companyName: string | null; }; tariff: { id: number; name: string; } | null; provider: { id: number; name: string; } | null; tariffName: string | null; providerName: string | null; contractNumber: string; }; subtasks: { id: number; createdAt: Date; updatedAt: Date; status: import(".prisma/client").$Enums.ContractTaskStatus; title: string; createdBy: string | null; completedAt: Date | null; taskId: number; }[]; } & { id: number; createdAt: Date; updatedAt: Date; description: string | null; status: import(".prisma/client").$Enums.ContractTaskStatus; contractId: number; title: string; visibleInPortal: boolean; createdBy: string | null; completedAt: Date | null; })[]>; export declare function getTaskStats(filters: AllTasksFilters): Promise<{ openCount: number; }>; //# sourceMappingURL=contractTask.service.d.ts.map