import { RoleRepository } from "../repositories/role.repository";
import { Role } from "../entities/role.entity";
import { CreateRoleDto } from "../dto/create-role.dto";
import { UpdateRoleDto } from "../dto/update-role.dto";
import { FindAllRolesDto } from "../dto/find-all-roles.dto";
import { Repository } from "typeorm";
import { Department } from "../../department/entities/department.entity";
import { BusinessVertical } from "../../business-verticals/entities/business-verticals.entity";
import { TeamMember } from "../../team-member/entities/team_member.entity";
import { UserLogin } from "../../auth/entities/user-login.entity";
import { Auth } from "../../auth/entities/auth.entity";
export declare class RoleService {
    private readonly roleRepository;
    private readonly departmentRepo;
    private readonly businessVerticalRepo;
    private readonly roleModelRepository;
    private readonly teamMemberRepository;
    private readonly authRepository;
    private readonly userLoginRepository;
    constructor(roleRepository: RoleRepository, departmentRepo: Repository<Department>, businessVerticalRepo: Repository<BusinessVertical>, roleModelRepository: Repository<Role>, teamMemberRepository: Repository<TeamMember>, authRepository: Repository<Auth>, userLoginRepository: Repository<UserLogin>);
    checkRoleExist(name: string, excludeId?: number): Promise<boolean>;
    createRole(createRoleDto: CreateRoleDto): Promise<Role | {
        success: boolean;
        code: number;
        message: string;
    }>;
    findAllRoles(params: FindAllRolesDto): Promise<{
        count: number;
        data: {
            member_count: number;
            id: number;
            name: string;
            status: number;
            description: string;
            parent_role_id: number;
            is_web_login: boolean;
            deleted_at: Date;
            created_at: Date;
            updated_at: Date;
            users: Auth[];
            role_permissions: import("../../role-permission/entities/role-permission.entity").RolePermission[];
            team_member: TeamMember[];
            departments: Department[];
            business_verticals: BusinessVertical[];
            parent_role: Role;
            child_roles: Role[];
        }[];
    }>;
    findOneRole(id: number): Promise<Role>;
    updateRole(id: number, updateRoleDto: UpdateRoleDto): Promise<Role | {
        success: boolean;
        code: number;
        message: string;
    }>;
    remove(id: number): Promise<string | {
        success: boolean;
        code: number;
        message: string;
    }>;
    changeRoleStatus(id: number, status: number): Promise<Role>;
    rolesDropdown(excludeId: string): Promise<number | Role | Role[] | import("../../../common/interfaces/pagination-result.interface").PaginatedResult<Role>>;
}
