import { WorkflowRolesService } from './workflow-roles.service';
import { CreateWorkflowRoleDto, UpdateWorkflowRoleDto, AssignWorkflowRoleUsersDto, WorkflowRoleQueryDto, ResolveWorkflowRoleDto } from './dto/workflow-role.dto';
export declare class WorkflowRolesController {
    private readonly workflowRolesService;
    constructor(workflowRolesService: WorkflowRolesService);
    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 & {
        code?: string;
    }): 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, assignUsersDto: AssignWorkflowRoleUsersDto): Promise<any>;
    removeUser(id: string, userId: string): Promise<{
        message: string;
    }>;
    resolve(resolveDto: ResolveWorkflowRoleDto): Promise<import("./dto/workflow-role.dto").ResolveResult>;
}
