import { PrismaService } from "../../../core/database/prisma/prisma.service";
import { CreateWorkflowRoleDto, UpdateWorkflowRoleDto, WorkflowRoleQueryDto, ResolveWorkflowRoleDto, ResolveResult } from './dto/workflow-role.dto';
export declare class WorkflowRolesService {
    private prisma;
    private readonly logger;
    constructor(prisma: PrismaService);
    findAll(query?: WorkflowRoleQueryDto): Promise<{
        userCount: number;
        _count: {
            userAssignments: number;
        };
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        description: string | null;
        ruleConfig: import("@prisma/client/runtime/library").JsonValue;
        ruleType: import("@prisma/client").$Enums.WorkflowRuleType;
    }[]>;
    findOne(id: string): Promise<{
        users: any;
        userAssignments: ({
            user: {
                displayName: string;
                id: string;
                username: string;
                email: string;
                avatar: string | null;
                departmentMemberships: ({
                    department: {
                        id: string;
                        name: string;
                    };
                } & {
                    title: string | null;
                    id: string;
                    createdAt: Date;
                    userId: string;
                    updatedAt: Date;
                    organizationId: string;
                    departmentId: string;
                    positionId: string | null;
                    managerId: string | null;
                    isPrimary: boolean;
                    joinedAt: Date;
                    leftAt: Date | null;
                })[];
            };
        } & {
            id: string;
            createdAt: Date;
            userId: string;
            workflowRoleId: string;
        })[];
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        description: string | null;
        ruleConfig: import("@prisma/client/runtime/library").JsonValue;
        ruleType: import("@prisma/client").$Enums.WorkflowRuleType;
    }>;
    create(createDto: CreateWorkflowRoleDto): Promise<{
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        description: string | null;
        ruleConfig: import("@prisma/client/runtime/library").JsonValue;
        ruleType: import("@prisma/client").$Enums.WorkflowRuleType;
    }>;
    update(id: string, updateDto: UpdateWorkflowRoleDto): Promise<{
        code: string;
        id: string;
        createdAt: Date;
        name: string;
        updatedAt: Date;
        description: string | null;
        ruleConfig: import("@prisma/client/runtime/library").JsonValue;
        ruleType: import("@prisma/client").$Enums.WorkflowRuleType;
    }>;
    remove(id: string): Promise<{
        message: string;
    }>;
    getUsers(id: string): Promise<any>;
    assignUsers(id: string, userIds: string[]): Promise<any>;
    removeUser(id: string, userId: string): Promise<{
        message: string;
    }>;
    resolve(dto: ResolveWorkflowRoleDto): Promise<ResolveResult>;
    private resolveOrganizationRelation;
    private resolveSystemRoleMapping;
    private applyFallback;
    private calculateDepartmentLevel;
    private validateRuleConfig;
}
