import type { CreateTaskDto, UpdateTaskDto, ExecuteTaskDto } from './automation.service';
import { AutomationService } from './automation.service';
import { AutomationTaskType, AutomationTaskStatus, AutomationExecutionStatus } from '@prisma/client';
export declare class AutomationController {
    private readonly automationService;
    constructor(automationService: AutomationService);
    getStatistics(): Promise<{
        totalTasks: number;
        activeTasks: number;
        totalExecutions: number;
        recentFailures: number;
        tasksByType: (import("@prisma/client").Prisma.PickEnumerable<import("@prisma/client").Prisma.AutomationTaskGroupByOutputType, "type"[]> & {
            _count: number;
        })[];
        recentExecutions: ({
            task: {
                type: import("@prisma/client").$Enums.AutomationTaskType;
                name: string;
            };
        } & {
            error: string | null;
            id: string;
            createdAt: Date;
            result: import("@prisma/client/runtime/library").JsonValue | null;
            status: import("@prisma/client").$Enums.AutomationExecutionStatus;
            duration: number | null;
            logs: string | null;
            startedAt: Date;
            completedAt: Date | null;
            triggerType: string;
            triggeredBy: string | null;
            taskId: string;
        })[];
    }>;
    findAll(type?: AutomationTaskType, status?: AutomationTaskStatus): Promise<({
        _count: {
            executions: number;
        };
    } & {
        type: import("@prisma/client").$Enums.AutomationTaskType;
        timeout: number;
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.AutomationTaskStatus;
        name: string;
        updatedAt: Date;
        description: string | null;
        createdById: string | null;
        retryCount: number;
        config: import("@prisma/client/runtime/library").JsonValue;
        scheduleType: string;
        scheduleConfig: import("@prisma/client/runtime/library").JsonValue;
        lastRunAt: Date | null;
        lastStatus: import("@prisma/client").$Enums.AutomationExecutionStatus | null;
        nextRunAt: Date | null;
        totalRuns: number;
        successRuns: number;
        failedRuns: number;
    })[]>;
    findOne(id: string): Promise<{
        _count: {
            executions: number;
        };
        createdBy: {
            displayName: string;
            id: string;
            username: string;
        } | null;
    } & {
        type: import("@prisma/client").$Enums.AutomationTaskType;
        timeout: number;
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.AutomationTaskStatus;
        name: string;
        updatedAt: Date;
        description: string | null;
        createdById: string | null;
        retryCount: number;
        config: import("@prisma/client/runtime/library").JsonValue;
        scheduleType: string;
        scheduleConfig: import("@prisma/client/runtime/library").JsonValue;
        lastRunAt: Date | null;
        lastStatus: import("@prisma/client").$Enums.AutomationExecutionStatus | null;
        nextRunAt: Date | null;
        totalRuns: number;
        successRuns: number;
        failedRuns: number;
    }>;
    create(createTaskDto: CreateTaskDto, req: any): Promise<{
        type: import("@prisma/client").$Enums.AutomationTaskType;
        timeout: number;
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.AutomationTaskStatus;
        name: string;
        updatedAt: Date;
        description: string | null;
        createdById: string | null;
        retryCount: number;
        config: import("@prisma/client/runtime/library").JsonValue;
        scheduleType: string;
        scheduleConfig: import("@prisma/client/runtime/library").JsonValue;
        lastRunAt: Date | null;
        lastStatus: import("@prisma/client").$Enums.AutomationExecutionStatus | null;
        nextRunAt: Date | null;
        totalRuns: number;
        successRuns: number;
        failedRuns: number;
    }>;
    update(id: string, updateTaskDto: UpdateTaskDto): Promise<{
        type: import("@prisma/client").$Enums.AutomationTaskType;
        timeout: number;
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.AutomationTaskStatus;
        name: string;
        updatedAt: Date;
        description: string | null;
        createdById: string | null;
        retryCount: number;
        config: import("@prisma/client/runtime/library").JsonValue;
        scheduleType: string;
        scheduleConfig: import("@prisma/client/runtime/library").JsonValue;
        lastRunAt: Date | null;
        lastStatus: import("@prisma/client").$Enums.AutomationExecutionStatus | null;
        nextRunAt: Date | null;
        totalRuns: number;
        successRuns: number;
        failedRuns: number;
    }>;
    remove(id: string): Promise<{
        message: string;
    }>;
    enable(id: string): Promise<{
        type: import("@prisma/client").$Enums.AutomationTaskType;
        timeout: number;
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.AutomationTaskStatus;
        name: string;
        updatedAt: Date;
        description: string | null;
        createdById: string | null;
        retryCount: number;
        config: import("@prisma/client/runtime/library").JsonValue;
        scheduleType: string;
        scheduleConfig: import("@prisma/client/runtime/library").JsonValue;
        lastRunAt: Date | null;
        lastStatus: import("@prisma/client").$Enums.AutomationExecutionStatus | null;
        nextRunAt: Date | null;
        totalRuns: number;
        successRuns: number;
        failedRuns: number;
    }>;
    pause(id: string): Promise<{
        type: import("@prisma/client").$Enums.AutomationTaskType;
        timeout: number;
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.AutomationTaskStatus;
        name: string;
        updatedAt: Date;
        description: string | null;
        createdById: string | null;
        retryCount: number;
        config: import("@prisma/client/runtime/library").JsonValue;
        scheduleType: string;
        scheduleConfig: import("@prisma/client/runtime/library").JsonValue;
        lastRunAt: Date | null;
        lastStatus: import("@prisma/client").$Enums.AutomationExecutionStatus | null;
        nextRunAt: Date | null;
        totalRuns: number;
        successRuns: number;
        failedRuns: number;
    }>;
    disable(id: string): Promise<{
        type: import("@prisma/client").$Enums.AutomationTaskType;
        timeout: number;
        code: string;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.AutomationTaskStatus;
        name: string;
        updatedAt: Date;
        description: string | null;
        createdById: string | null;
        retryCount: number;
        config: import("@prisma/client/runtime/library").JsonValue;
        scheduleType: string;
        scheduleConfig: import("@prisma/client/runtime/library").JsonValue;
        lastRunAt: Date | null;
        lastStatus: import("@prisma/client").$Enums.AutomationExecutionStatus | null;
        nextRunAt: Date | null;
        totalRuns: number;
        successRuns: number;
        failedRuns: number;
    }>;
    execute(id: string, executeDto: ExecuteTaskDto, req: any): Promise<{
        message: string;
        executionId: string;
        task: {
            _count: {
                executions: number;
            };
            createdBy: {
                displayName: string;
                id: string;
                username: string;
            } | null;
        } & {
            type: import("@prisma/client").$Enums.AutomationTaskType;
            timeout: number;
            code: string;
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.AutomationTaskStatus;
            name: string;
            updatedAt: Date;
            description: string | null;
            createdById: string | null;
            retryCount: number;
            config: import("@prisma/client/runtime/library").JsonValue;
            scheduleType: string;
            scheduleConfig: import("@prisma/client/runtime/library").JsonValue;
            lastRunAt: Date | null;
            lastStatus: import("@prisma/client").$Enums.AutomationExecutionStatus | null;
            nextRunAt: Date | null;
            totalRuns: number;
            successRuns: number;
            failedRuns: number;
        };
    }>;
    getExecutions(id: string, page?: string, pageSize?: string, status?: AutomationExecutionStatus): Promise<{
        data: {
            error: string | null;
            id: string;
            createdAt: Date;
            result: import("@prisma/client/runtime/library").JsonValue | null;
            status: import("@prisma/client").$Enums.AutomationExecutionStatus;
            duration: number | null;
            logs: string | null;
            startedAt: Date;
            completedAt: Date | null;
            triggerType: string;
            triggeredBy: string | null;
            taskId: string;
        }[];
        pagination: {
            page: number;
            pageSize: number;
            total: number;
            totalPages: number;
        };
    }>;
    getExecutionDetail(id: string): Promise<{
        task: {
            type: import("@prisma/client").$Enums.AutomationTaskType;
            code: string;
            id: string;
            name: string;
        };
    } & {
        error: string | null;
        id: string;
        createdAt: Date;
        result: import("@prisma/client/runtime/library").JsonValue | null;
        status: import("@prisma/client").$Enums.AutomationExecutionStatus;
        duration: number | null;
        logs: string | null;
        startedAt: Date;
        completedAt: Date | null;
        triggerType: string;
        triggeredBy: string | null;
        taskId: string;
    }>;
}
