import { ApprovalService } from './approval.service';
import { AdminApprovalService } from './admin-approval.service';
import { AdminAnalyticsService } from './admin-analytics.service';
import { AdminConfigService } from './admin-config.service';
import { AdminExportService } from './admin-export.service';
import { DefinitionService } from './definition.service';
import { StartApprovalDto, ApproveDto, RejectDto, ReturnDto, ForwardDto, WithdrawDto, ApproverWithdrawDto, AddSignDto, ClaimDto, UnclaimDto, ExecuteDto, PendingTasksQueryDto, InitiatedQueryDto, ProcessedQueryDto, CcQueryDto, ProcessSearchDto, RemindDto, BatchRemindDto, AdminAnalyticsQueryDto, AdminInstancesQueryDto, AdminInstancesExportDto, AdminSettingsDto, AdminTerminateDto, AdminResumeWithApproversDto, AdminApproveDto, AdminRejectDto, AdminReassignDto, AuditLogsQueryDto, CreateDefinitionDto, UpdateDefinitionDto, DefinitionsQueryDto } from './dto/approval.dto';
export declare class ApprovalController {
    private readonly approvalService;
    private readonly adminApprovalService;
    private readonly adminAnalyticsService;
    private readonly adminExportService;
    private readonly adminConfigService;
    private readonly definitionService;
    constructor(approvalService: ApprovalService, adminApprovalService: AdminApprovalService, adminAnalyticsService: AdminAnalyticsService, adminExportService: AdminExportService, adminConfigService: AdminConfigService, definitionService: DefinitionService);
    startApproval(dto: StartApprovalDto, userId: string, idempotencyKey?: string): Promise<import("./dto/approval-response.dto").StartApprovalResponse>;
    syncDefinitions(userId: string): Promise<{
        success: boolean;
        message: string;
        syncedCount: number;
    }>;
    getAuditLogs(query: AuditLogsQueryDto): Promise<import("./dto/approval-response.dto").PaginatedAuditLogsResponse>;
    getAdminInstances(query: AdminInstancesQueryDto): Promise<import("./dto/approval-response.dto").AdminInstancesResponse>;
    getAdminAnalytics(query: AdminAnalyticsQueryDto): Promise<import("./dto/approval-response.dto").AdminAnalyticsResponse>;
    exportAdminInstances(dto: AdminInstancesExportDto, userId: string): Promise<import("./dto/approval-response.dto").AdminExportResponse>;
    getAdminExports(userId: string): Promise<import("./dto/approval-response.dto").AdminExportStatusResponse[]>;
    getAdminExportStatus(taskId: string): Promise<import("./dto/approval-response.dto").AdminExportStatusResponse>;
    getAdminSettings(): Promise<import("./dto/approval-response.dto").AdminSettingsResponse>;
    updateAdminSettings(dto: AdminSettingsDto, userId: string): Promise<import("./dto/approval-response.dto").AdminSettingsResponse>;
    adminTerminate(instanceId: string, dto: AdminTerminateDto, userId: string, adminReason?: string, requestId?: string): Promise<import("./dto/approval-response.dto").AdminActionResponse>;
    adminResumeWithApprovers(instanceId: string, dto: AdminResumeWithApproversDto, userId: string, adminReason?: string, requestId?: string): Promise<import("./dto/approval-response.dto").AdminActionResponse>;
    adminApprove(instanceId: string, dto: AdminApproveDto, userId: string, adminReason?: string, requestId?: string): Promise<import("./dto/approval-response.dto").AdminActionResponse>;
    adminReject(instanceId: string, dto: AdminRejectDto, userId: string, adminReason?: string, requestId?: string): Promise<import("./dto/approval-response.dto").AdminActionResponse>;
    adminReassign(instanceId: string, dto: AdminReassignDto, userId: string, adminReason?: string, requestId?: string): Promise<import("./dto/approval-response.dto").AdminActionResponse>;
    getDefinitions(query: DefinitionsQueryDto): Promise<{
        items: import("./dto/approval-response.dto").ProcessDefinitionItem[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
        hasNext: boolean;
        hasPrev: boolean;
    }>;
    createDefinition(dto: CreateDefinitionDto, userId: string): Promise<import("./dto/approval-response.dto").ProcessDefinitionItem>;
    getDefinition(key: string): Promise<import("./dto/approval-response.dto").ProcessDefinitionItem>;
    updateDefinition(key: string, dto: UpdateDefinitionDto, userId: string): Promise<import("./dto/approval-response.dto").ProcessDefinitionItem>;
    deleteDefinition(key: string): Promise<{
        success: boolean;
        message: string;
    }>;
    getDefinitionVersions(key: string): Promise<{
        items: import("./dto/approval-response.dto").ProcessVersionItem[];
    }>;
    getMyPendingTasks(userId: string, query: PendingTasksQueryDto): Promise<import("./dto/approval-response.dto").PaginatedTasksResponse>;
    getMyInitiated(userId: string, query: InitiatedQueryDto): Promise<import("./dto/approval-response.dto").PaginatedTasksResponse>;
    getMyProcessed(userId: string, query: ProcessedQueryDto): Promise<import("./dto/approval-response.dto").PaginatedTasksResponse>;
    getMyCc(userId: string, query: CcQueryDto): Promise<import("./dto/approval-response.dto").PaginatedTasksResponse>;
    getMyStats(userId: string): Promise<import("./dto/approval-response.dto").TaskStatsResponse>;
    getMyReminders(userId: string, query: PendingTasksQueryDto): Promise<{
        items: {
            id: string;
            instanceId: string;
            taskId: string;
            taskName: string;
            businessKey: string;
            reminderType: import("@prisma/client").$Enums.ReminderType;
            channels: string[];
            status: import("@prisma/client").$Enums.ReminderStatus;
            scheduledAt: string;
            executedAt: string | undefined;
            createdAt: string;
        }[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
        hasNext: boolean;
        hasPrev: boolean;
    }>;
    getTaskDetail(taskId: string, userId: string): Promise<import("./dto/approval-response.dto").TaskDetailResponse>;
    getReturnableNodes(instanceId: string, taskId: string, userId: string): Promise<import("./dto/approval-response.dto").ReturnableNode[] | {
        nodes: never[];
    }>;
    searchProcesses(query: ProcessSearchDto): Promise<import("./dto/approval-response.dto").PaginatedTasksResponse>;
    getByBusinessQuery(businessType: string, businessId: string): Promise<import("./dto/approval-response.dto").ProcessDetailResponse>;
    getProcessByBusiness(businessType: string, businessId: string): Promise<import("./dto/approval-response.dto").ProcessDetailResponse>;
    getDiagramByBusiness(businessType: string, businessId: string): Promise<import("./dto/approval-response.dto").DiagramResponse>;
    approve(instanceId: string, dto: ApproveDto, userId: string): Promise<import("./dto/approval-response.dto").ApprovalActionResponse>;
    reject(instanceId: string, dto: RejectDto, userId: string): Promise<import("./dto/approval-response.dto").ApprovalActionResponse>;
    return(instanceId: string, dto: ReturnDto, userId: string): Promise<import("./dto/approval-response.dto").ApprovalActionResponse>;
    forward(instanceId: string, dto: ForwardDto, userId: string): Promise<import("./dto/approval-response.dto").ApprovalActionResponse>;
    withdraw(instanceId: string, dto: WithdrawDto, userId: string): Promise<import("./dto/approval-response.dto").WithdrawResponse>;
    approverWithdraw(instanceId: string, dto: ApproverWithdrawDto, userId: string): Promise<import("./dto/approval-response.dto").ApprovalActionResponse>;
    addSign(instanceId: string, dto: AddSignDto, userId: string): Promise<import("./dto/approval-response.dto").ApprovalActionResponse>;
    claim(instanceId: string, dto: ClaimDto, userId: string): Promise<import("./dto/approval-response.dto").ApprovalActionResponse>;
    unclaim(instanceId: string, dto: UnclaimDto, userId: string): Promise<import("./dto/approval-response.dto").ApprovalActionResponse>;
    execute(instanceId: string, dto: ExecuteDto, userId: string): Promise<import("./dto/approval-response.dto").ApprovalActionResponse>;
    remind(instanceId: string, dto: RemindDto, userId: string): Promise<import("./dto/approval-response.dto").RemindResponse>;
    batchRemind(instanceId: string, dto: BatchRemindDto, userId: string): Promise<import("./dto/approval-response.dto").BatchRemindResponse>;
    getProcessStatus(instanceId: string): Promise<import("./dto/approval-response.dto").ProcessStatusResponse>;
    getProcessHistory(instanceId: string): Promise<import("./dto/approval-response.dto").ApprovalHistoryResponse>;
    getDiagram(instanceId: string): Promise<import("./dto/approval-response.dto").DiagramResponse>;
    getReminders(instanceId: string): Promise<{
        items: {
            id: string;
            instanceId: string;
            taskId: string;
            reminderType: import("@prisma/client").$Enums.ReminderType;
            channels: string[];
            status: import("@prisma/client").$Enums.ReminderStatus;
            scheduledAt: string;
            executedAt: string | undefined;
            createdAt: string;
        }[];
    }>;
    getProcessDetail(instanceId: string): Promise<import("./dto/approval-response.dto").ProcessDetailResponse>;
}
