import { Repository } from 'typeorm';
import { PermissionEntity } from './entities/permission.entity';
import { BasePermissionService } from './abstract/permission.abstract';
import { CreatePermissionDto } from './dto/create-permission.dto';
import { PaginatedPermissionResponseDto, PermissionResponseDto } from './dto/permission-response.dto';
import { UpdatePermissionDto } from './dto/update-permission.dto';
import { RoleService } from '../roles/role.service';
import { SubPermissionEntity } from './entities/sub-permission.entity';
import { CreateSubPermissionDto } from './dto/create-sub-permisison.dto';
import { UpdateSubPermissionDto } from './dto/update-sub-permission.dto';
export declare class PermissionService extends BasePermissionService {
    private readonly permissionRepository;
    private readonly subPermissionRepository;
    private readonly roleService;
    private readonly logger;
    constructor(permissionRepository: Repository<PermissionEntity>, subPermissionRepository: Repository<SubPermissionEntity>, roleService: RoleService);
    createPermission(createPermissionDto: CreatePermissionDto): Promise<PermissionResponseDto>;
    updatePermission(permissionId: string, updatePermissionDto: UpdatePermissionDto): Promise<PermissionResponseDto>;
    deletePermission(permissionId: string): Promise<void>;
    findAllClientPermissions(): Promise<PermissionResponseDto[]>;
    findPermissionById(permissionId: string): Promise<PermissionResponseDto>;
    findPermissionsByIds(permissionIds: string[]): Promise<PermissionResponseDto[]>;
    findPermissionsEntitysByIds(permissionIds: string[]): Promise<PermissionEntity[]>;
    findPermissionByName(permissionName: string): Promise<PermissionResponseDto>;
    removePermissionsFromRole(roleId: string, permissionIds: string[]): Promise<void>;
    getPermissionsByRoleId(roleId: string, page: number, limit: number): Promise<PaginatedPermissionResponseDto>;
    getPermissionsByRoleName(roleName: string, page: number, limit: number): Promise<PaginatedPermissionResponseDto>;
    createSubPermission(createSubPermissionDto: CreateSubPermissionDto): Promise<PermissionResponseDto>;
    updateSubPermission(subPermissionId: string, updateSubPermissionDto: UpdateSubPermissionDto): Promise<PermissionResponseDto>;
    deleteSubPermission(subPermissionId: string): Promise<void>;
    findSubPermissionById(subPermissionId: string): Promise<PermissionResponseDto>;
    findSubPermissionByIds(subPermissionIds: string[]): Promise<SubPermissionEntity[]>;
    findSubPermissionByName(subPermissionName: string): Promise<PermissionResponseDto>;
    findAllSubPermissions(): Promise<SubPermissionEntity[]>;
    removeSubPermissionsFromRole(roleId: string, subPermissionIds: string[]): Promise<void>;
    getSubPermissionsByPermissionId(permissionId: string): Promise<SubPermissionEntity[]>;
}
